lijiuhui / laravel-cos-sts
腾讯云对象存储COS STS授权临时密钥SDK for Laravel 支持10.0
dev-master
2023-08-01 05:04 UTC
Requires
- php: >=8.0.2
- illuminate/support: ^8.0|^9.0|^10.0
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();
贡献
您可以通过以下三种方式之一进行贡献
代码贡献过程并不非常正式。您只需确保遵循PSR-0、PSR-1和PSR-2编码指南。任何新的代码贡献都必须附有适用的单元测试。
许可证
MIT