lijiuhui/laravel-cos-sts

腾讯云对象存储COS STS授权临时密钥SDK for Laravel 支持10.0

dev-master 2023-08-01 05:04 UTC

This package is auto-updated.

Last update: 2024-09-30 01:49:11 UTC


README

腾讯云COS STS授权的PHP SDK for Laravel.

安装

$ composer require buxuhunao/laravel-cos-sts -vvv

配置

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),
           ],
       ],
       //...
    ]
];

使用

// 设置临时密钥有效期,单位为秒,不设置默认为30分钟
setDurationSeconds(int $seconds) 

// 策略允许/拒绝,默认为true允许
setEffect(bool $isAllow)

// 设置策略和对应的资源,多个策略可多次调用
setPolicy(string|array $allowActions, string|array $allowPrefixes)

// 获取临时密钥
getTempKeys(array $options) 

// 用法1$config = [
    'allowActions' => ['name/cos:PutObject', 'name/cos:PostObject'], // 字符串或数组
    'allowPrefixes' => ['docs/*', '/xls/*', 'ppt/a.ppt'], // 字符串或数组
    'durationSeconds' => 3600, // 可选,默认1800
];

return Sts::getTempKeys($config);

// 用法2:
Sts::setDurationSeconds(3600)
    ->setPolicy(['name/cos:PutObject', 'name/cos:PostObject'], ['docs/*', '/xls/*', 'ppt/a.ppt'])
    ->getTempKeys();

贡献

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

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

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

许可证

MIT