maxlcoder/larave-oss

阿里云 OSS Laravel 扩展

dev-main 2024-08-23 07:54 UTC

This package is auto-updated.

Last update: 2024-09-23 08:13:12 UTC


README

配置

配置文件位于 config/oss.php 文件中,内容如下:

return [
    'endpoint_upload' => env('OSS_ENDPOINT_UPLOAD'),
    'endpoint' => env('OSS_ENDPOINT'),
    'access_key' => env('OSS_ACCESS_KEY'),
    'secret_key' => env('OSS_SECRET_KEY'),
    'bucket' => env('OSS_BUCKET'),
    'path' => env('OSS_PATH', '')
];

重点配置说明

endpoint_upload: 表示与阿里云进行 API 交互的域名,例如 oss-cn-hangzhou.aliyuncs.com,例如文件上传,相关设置之类。注意这里如果是纯后端和 OSS 交互,且服务是部署在阿里云上,这里可以考虑使用内网域名

endpoint: 文件域名通常作为文件下载的预览地址域名,通常使用 bucket 域名,例如 https://[bucket-name].oss-cn-hangzhou.aliyuncs.com,如果不想暴露 bucket 域名也可以使用自定义域名。

域名支持情况

因此这里保留两个 endpoint 配置,以便支持各种情况

path: 考虑到单个 bucket 既可以作为开发环境,也可以作为生产环境,提供一个 bucket 下的顶层目录来区分不同环境下产生的文件。如果不同环境有不同的 bucket 或者不区分环境,该配置可以忽略

方法

服务端上传加密签名

$dir 设置文件前缀,防止文件重复,未传值时,系统默认使用 日期+uuid+随机码 进行文件前缀防止重复
$maxSize 最大支持的上传文件大小(字节数)

public function signUpload($dir = '', $maxSize = 1048576000){ ... }

返回参数

return [
    'access_id' => $accessKeyId,
    'host' => $host,
    'policy' => $base64Policy,
    'signature' => $signature,
    'dir' => $dir,
];