定制 freyo/flysystem-qcloud-cos-v5 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

freyo/flysystem-qcloud-cos-v5

最新稳定版本:2.2.1

Composer 安装命令:

composer require freyo/flysystem-qcloud-cos-v5

包简介

Flysystem Adapter for Tencent Qcloud COS SDK V5

README 文档

README

Flysystem Adapter for Tencent Cloud Object Storage

Software License Build Status Coverage Status Quality Score Packagist Version Total Downloads

FOSSA Status

Installation

Support Laravel/Lumen 5.x/6.x/7.x/8.x

composer require "freyo/flysystem-qcloud-cos-v5:^2.0" -vvv

Bootstrap

<?php
use Freyo\Flysystem\QcloudCOSv5\Adapter;
use League\Flysystem\Filesystem;
use Qcloud\Cos\Client;

include __DIR__ . '/vendor/autoload.php';

$config = [
    'region'          => 'ap-guangzhou',
    'credentials'     => [
        'appId'     => 'your-app-id',
        'secretId'  => 'your-secret-id',
        'secretKey' => 'your-secret-key',
        'token'     => null,
    ],
    'timeout'         => 60,
    'connect_timeout' => 60,
    'bucket'          => 'your-bucket-name',
    'cdn'             => '',
    'scheme'          => 'https',
    'read_from_cdn'   => false,
    'cdn_key'         => '',
    'encrypt'         => false,
];

$client     = new Client($config);
$adapter    = new Adapter($client, $config);
$filesystem = new Filesystem($adapter);

API

bool $flysystem->write('file.md', 'contents');

bool $flysystem->writeStream('file.md', fopen('path/to/your/local/file.jpg', 'r'));

bool $flysystem->update('file.md', 'new contents');

bool $flysystem->updateStram('file.md', fopen('path/to/your/local/file.jpg', 'r'));

bool $flysystem->rename('foo.md', 'bar.md');

bool $flysystem->copy('foo.md', 'foo2.md');

bool $flysystem->delete('file.md');

bool $flysystem->has('file.md');

string|false $flysystem->read('file.md');

array $flysystem->listContents();

array $flysystem->getMetadata('file.md');

int $flysystem->getSize('file.md');

string $flysystem->getUrl('file.md'); 

string $flysystem->getTemporaryUrl('file.md', date_create('2018-12-31 18:12:31')); 

string $flysystem->getMimetype('file.md');

int $flysystem->getTimestamp('file.md');

string $flysystem->getVisibility('file.md');

bool $flysystem->setVisibility('file.md', 'public'); //or 'private', 'default'

Full API documentation.

Use in Laravel

Laravel 5.5+ uses Package Auto-Discovery, so doesn't require you to manually add the ServiceProvider.

  1. Register the service provider in config/app.php:
'providers' => [
  // ...
  Freyo\Flysystem\QcloudCOSv5\ServiceProvider::class,
]
  1. Configure config/filesystems.php:
'disks'=>[
    // ...
    'cosv5' => [
          'driver' => 'cosv5',
          'region'          => env('COSV5_REGION', 'ap-guangzhou'),
          'credentials'     => [
              'appId'     => env('COSV5_APP_ID'),
              'secretId'  => env('COSV5_SECRET_ID'),
              'secretKey' => env('COSV5_SECRET_KEY'),
              'token'     => env('COSV5_TOKEN'),
          ],
          'timeout'         => env('COSV5_TIMEOUT', 60),
          'connect_timeout' => env('COSV5_CONNECT_TIMEOUT', 60),
          'bucket'          => env('COSV5_BUCKET'),
          'cdn'             => env('COSV5_CDN'),
          'scheme'          => env('COSV5_SCHEME', 'https'),
          'read_from_cdn'   => env('COSV5_READ_FROM_CDN', false),
          'cdn_key'         => env('COSV5_CDN_KEY'),
          'encrypt'         => env('COSV5_ENCRYPT', false),
    ],
],
  1. Configure .env:
COSV5_APP_ID=
COSV5_SECRET_ID=
COSV5_SECRET_KEY=
COSV5_TOKEN=null
COSV5_TIMEOUT=60
COSV5_CONNECT_TIMEOUT=60
COSV5_BUCKET=
COSV5_REGION=ap-guangzhou
COSV5_CDN=
COSV5_SCHEME=https
COSV5_READ_FROM_CDN=false
COSV5_CDN_KEY=
COSV5_ENCRYPT=false

Use in Lumen

  1. Add the following code to your bootstrap/app.php:
$app->singleton('filesystem', function ($app) {
    $app->alias('filesystem', Illuminate\Contracts\Filesystem\Factory::class);
    return $app->loadComponent(
        'filesystems',
        Illuminate\Filesystem\FilesystemServiceProvider::class,
        'filesystem'
    );
});
  1. And this:
$app->register(Freyo\Flysystem\QcloudCOSv5\ServiceProvider::class);
  1. Configure .env:
COSV5_APP_ID=
COSV5_SECRET_ID=
COSV5_SECRET_KEY=
COSV5_TOKEN=null
COSV5_TIMEOUT=60
COSV5_CONNECT_TIMEOUT=60
COSV5_BUCKET=
COSV5_REGION=ap-guangzhou
COSV5_CDN=
COSV5_SCHEME=https
COSV5_READ_FROM_CDN=false
COSV5_CDN_KEY=
COSV5_ENCRYPT=false

Usage

$disk = Storage::disk('cosv5');

// create a file
$disk->put('avatars/1', $fileContents);

// check if a file exists
$exists = $disk->has('file.jpg');

// get timestamp
$time = $disk->lastModified('file1.jpg');

// copy a file
$disk->copy('old/file1.jpg', 'new/file1.jpg');

// move a file
$disk->move('old/file1.jpg', 'new/file1.jpg');

// get file contents
$contents = $disk->read('folder/my_file.txt');

// get url
$url = $disk->url('new/file1.jpg');
$temporaryUrl = $disk->temporaryUrl('new/file1.jpg', Carbon::now()->addMinutes(5));

// create a file from remote(plugin)
$disk->putRemoteFile('avatars/1', 'http://example.org/avatar.jpg');
$disk->putRemoteFileAs('avatars/1', 'http://example.org/avatar.jpg', 'file1.jpg');

// refresh cdn cache(plugin)
$disk->cdn()->refreshUrl(['http://your-cdn-host/path/to/avatar.jpg']);
$disk->cdn()->refreshDir(['http://your-cdn-host/path/to/']);
$disk->cdn()->pushUrl(['http://your-cdn-host/path/to/avatar.jpg']);
$disk->cdn()->refreshOverseaUrl(['http://your-cdn-host/path/to/avatar.jpg']);
$disk->cdn()->refreshOverseaDir(['http://your-cdn-host/path/to/']);
$disk->cdn()->pushOverseaUrl(['http://your-cdn-host/path/to/avatar.jpg']);

// cdn url signature(plugin)
$url = 'http://www.test.com/1.mp4';
$disk->cdn()->signatureA($url, $key = null, $timestamp = null, $random = null, $signName = 'sign');
$disk->cdn()->signatureB($url, $key = null, $timestamp = null);
$disk->cdn()->signatureC($url, $key = null, $timestamp = null);
$disk->cdn()->signatureD($url, $key = null, $timestamp = null, $signName = 'sign', $timeName = 't');

// tencent captcha(plugin)
$disk->tcaptcha($aid, $appSecretKey)->verify($ticket, $randStr, $userIP);

// get federation token(plugin)
$disk->getFederationToken($path = '*', $seconds = 7200, Closure $customPolicy = null, $name = 'cos')
$disk->getFederationTokenV3($path = '*', $seconds = 7200, Closure $customPolicy = null, $name = 'cos')

// tencent image process(plugin)
$disk->cloudInfinite()->imageProcess($objectKey, array $picOperations);
$disk->cloudInfinite()->contentRecognition($objectKey, array $contentRecognition);

Full API documentation.

Regions & Endpoints

Official Documentation

License

The MIT License (MIT). Please see License File for more information.

FOSSA Status

统计信息

  • 总下载量: 191.17k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 162
  • 点击次数: 3
  • 依赖项目数: 7
  • 推荐数: 2

GitHub 信息

  • Stars: 156
  • Watchers: 5
  • Forks: 25
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 未知

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固