calchen / flysystem-aliyun-oss
用于阿里云对象存储(OSS)的 Flysystem Adapter(Flysystem Adapter for Aliyun OSS)
Installs: 1 165
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 2
Open Issues: 0
Requires
- php: >=5.5.9
- aliyuncs/oss-sdk-php: ~2.3.0
- league/flysystem: ^1.0
README
用于阿里云对象存储(OSS)的 Flysystem 适配器
这是一个基于阿里云 OSS SDK(2.3.0 及以上)的 Flysystem 适配器
受到 apollopy/flysystem-aliyun-oss 的启发
安装
$ composer require calchen/flysystem-aliyun-oss
Laravel
如果您的 Laravel 版本为 5.5 及以上,您不需要手动的配置文件中添加 AliyunOssServiceProvider
Laravel 自带的扩展包发现机制会处理好一切。如是小于 5.5 版本那么需要您进行如下操作:
打开位于 app/Providers
的 AppServiceProvider.php
文件并在 register
函数中添加如下内容:
$this->app->register(\Calchen\Flysystem\AliyunOss\AliyunOssServiceProvider::class);
您也可以在配置文件 config/app.php
中的 providers
中添加如下内容:
Calchen\Flysystem\AliyunOss\AliyunOssServiceProvider::class,
只需选择以上操作中的一种,即可加载本扩招包。
Lumen
Lumen 并未移植扩展包自动发现机制,所以需要手动加载扩展包并复制配置文件。
打开配置文件 bootstrap/app.php
并在大约 81 行左右添加如下内容:
$app->register(Calchen\Flysystem\AliyunOss\AliyunOssServiceProvider::class);
将文件系统配置文件从 vendor/laravel/lumen-framework/filesystems.php
复制到 config/filesystems.php
配置
打开配置文件 config/filesystems.php
并在 disks
中添加如下内容:
'oss' => [ 'driver' => 'oss', 'access_id' => env('ALIYUN_ACCESS_KEY_ID'), 'access_key_secret' => env('ALIYUN_ACCESS_KEY_SECRET'), 'bucket' => env('ALIYUN_OSS_BUCKET'), 'endpoint' => env('ALIYUN_OSS_ENDPOINT'), 'cdn_base_url' => env('ALIYUN_OSS_CDN_BASE_URL'), // 可选 'prefix' => '', // 可选 ],
如果您想将阿里云 OSS 作为默认的存储方式,那么可以在 .env
文件中设置配置项 FILESYSTEM_DRIVER=oss
配置说明
地域节点(endpoint)
官方地域节点:访问域名和数据中心
地域节点可以是域名,也可以是以 http://域名
或 https://域名
。
如果地域节点是域名则默认使用 HTTPS,如果需要使用 HTTP 请使用 http://域名
用户域名(CNAME domain)
设置成功并正常解析至阿里云 OSS 访问域名的用户域名可作为地域节点使用,如果是解析到 CDN 节点的用户域名是不可以作为地域节点使用的!!!
CDN 基础路径(CDN base URL)
如果您为阿里云 OSS 存储空间启用了 CDN(无论是不是阿里云 CDN),那么建议您设置 cdn_base_url,设置此项后您获取到的文件 URL 将全部以 cdn_base_url 开头
安全提醒
为了安全,请使用子账户的 AccessKey ID 和 AccessKey Key Secret,请务必不要使用主账户的 AccessKey ID 和 AccessKey Key Secret
用法
在 Laravel/Lumen 中可以使用 \Storage::disk('oss')->temporaryUrl($filePath);
来获取阿里云 OSS 私有存储空间中文件的带签名的 URL