calchen / flysystem-aliyun-oss by calchen

用于阿里云对象存储(OSS)的 Flysystem Adapter(Flysystem Adapter for Aliyun OSS)
1,165
7
2
Package Data
Maintainer Username: calchen
Maintainer Contact: contact@chenky.com (陈恺垣)
Package Create Date: 2019-08-16
Package Last Update: 2021-01-26
Home Page: https://packagist.org/packages/calchen/flysystem-aliyun-oss
Language: PHP
License: MIT
Last Refreshed: 2024-11-11 15:05:30
Package Statistics
Total Downloads: 1,165
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 7
Total Watchers: 2
Total Forks: 2
Total Open Issues: 0

English

这是一个基于阿里云 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/ProvidersAppServiceProvider.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

配置说明

| 配置项 | 必须 | 说明 | 备注 | |------------------- |------ |-------------------------------------- |----------------------- | | driver | 是 | 驱动名称 | 默认值:oss,不可修改 | | access_id | 是 | 用于身份验证的 AccessKey ID | 见下文“安全提醒” | | access_key_secret | 是 | 用于身份验证的 AccessKey Key Secret | 见下文“安全提醒” | | bucket | 是 | 存储空间名称 | - | | endpoint | 是 | 地域节点 | 见下文“地域节点” | | cdn_base_url | 否 | CDN 基础路径 | 见下文“CDN 基础路径” | | prefix | 否 | 保存路径的统一前缀 | - |

地域节点(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

开源协议

MIT