laungkahung/laravel-cos-slice

0.0.4 2023-09-25 07:34 UTC

This package is auto-updated.

Last update: 2024-09-25 09:40:18 UTC


README

这是一个COS SDK。

要求

  • Laravel >= 9.0
  • PHP >= 8.1

安装

  1. 安装包

    $ composer require laungkahung/laravel-cos-slice -vvv

    并使用命令发布资源

    $ php artisan vendor:publish --provider=Laungkahung\\LaravelCosSlice\\UploadServiceProvider
  2. 路由

    您可以在 routes/admin.php 或其他路由文件中注册路由

    \LaravelUploader::routes();
    
    // custom
    \LaravelUploader::routes([
       'as' => 'files.upload', 
       'middleware' => ['auth'],
       //...
    ]); 

配置

  1. 在您的 config/filesystems.php 配置中添加一个新的磁盘

    <?php
    
    return [
       'disks' => [
           //...
           'cos' => [
               'driver' => 'cos',
    
               'app_id'     => env('COS_APP_ID'),
               'secret_id'  => env('COS_SECRET_ID'),
               'secret_key' => env('COS_SECRET_KEY'),
               'region'     => env('COS_REGION', 'ap-guangzhou'),
    
               'bucket'     => env('COS_BUCKET'),  // 不带数字 app_id 后缀
               'cdn'        => env('COS_CDN'),
               'signed_url' => false,
    
               'prefix' => env('COS_PATH_PREFIX'), // 全局路径前缀
    
               'guzzle' => [
                   'timeout' => env('COS_TIMEOUT', 60),
                   'connect_timeout' => env('COS_CONNECT_TIMEOUT', 60),
               ],
           ],
           //...
        ]
    ];

    🚨 注意:example-1230000001.cos.ap-guangzhou.mycloud.com

    其中:bucket: example, app_id: 1230000001, region: ap-guangzhou

用法

// 发送文件 html文件在根目录html/upload.html
function sendFile(blob, file) {
  var form_data = new FormData();
  var total_blob_num = Math.ceil(file.size / LENGTH);

  form_data.append("file", blob);
  form_data.append("required_id", uuid);
  form_data.append("blob_num", Number(blob_num));
  form_data.append("total_blob_num", Number(total_blob_num));
  form_data.append("original_name", original_name);

  xhr.open(
    "POST",
    "https://:8000/api/files/slice-upload",
    false
  );

    ....
}
$disk = Storage::disk('cos');

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

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

// get timestamp
$time = $disk->lastModified('file1.jpg');
$time = $disk->getTimestamp('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');

完整的API文档。

overtrue 支持的项目

贡献

您可以通过以下三种方式之一进行贡献

  1. 使用 问题跟踪器 提交错误报告。
  2. 问题跟踪器 上回答问题或修复错误。
  3. 贡献新功能或更新wiki。

代码贡献过程不是很正式。您只需确保遵循PSR-0、PSR-1和PSR-2编码指南。任何新的代码贡献都必须附带适用的单元测试。

许可证

MIT