AWS S3
2.0.0
版本开始支持AWS S3存储,只要是支持S3协议的都可以,并非一定要用AWS S3,您也可以自建minio
等。
修改config.php
在config.php
中找到S3的配置,内容如下:
$config['s3']['region'] = 'us-east-1';
$config['s3']['endpoint'] = 'http://minio.xxx.com:9000';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
- region:如果有就填写对应的区域代码,如果没有,则不填写
- endpoint:就是S3的接口地址,如果是自建的minio,一般是
http://xxx.com:9000
- key:如果是自建minio就是用户名
- bucket:存储桶的名称
设置域名
在后台设置 - 系统设置 - 存储方案 - S3设置S3绑定的访问域名,注意,末尾需要带有/
注意S3的开关只对游客有效,如果是注册用户,并且设置了“注册用户默认存储策略”为S3,是否启用对注册用户都有效。
兼容存储
大部分对象存储都对AWS S3协议做了兼容,以下是部分存储的设置方法。
七牛云
七牛云后台 - 空间管理 - 新建空间 - 存储空间名称,名称根据规则填写即可,这个名称对应config.php
里面的:$config['s3']['bucket']
,存储区域选择离你图床最近的服务器,访问控制选择公开。
访问https://developer.qiniu.com/kodo/4088/s3-access-domainname获取“区域简称”和“访问 Endpoint”,对应关系如下:
-
$config['s3']['region']
对应七牛的区域简称
,比如:cn-south-1
-
$config['s3']['endpoint']
对应七牛的访问 Endpoint
,注意前面需要添加https
,末尾不需要/
,比如:https://s3-cn-south-1.qiniucs.com
访问https://portal.qiniu.com/user/key获取七牛的AccessKey/SecretKey
对应关系如下:
-
$config['s3']['key']
对应七牛的AccessKey
-
$config['s3']['bucket']
对应七牛的存储空间名称
在ImgURL后台 - 系统设置 - 存储方案 - S3绑定域名填写七牛的空间绑定域名,注意末尾需要带有/
,如下截图。
阿里云
登录阿里云OSS后台:https://oss.console.aliyun.com/bucket - 创建 Bucket,按照如下截图填写。
打开站点根目录下的config.php
,找到S3的配置选项:
$config['s3']['region'] = 'us-east-1';
$config['s3']['endpoint'] = 'http://minio.xxx.com:9000';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
继续打开阿里云文档:公共云下OSS Region和Endpoint对照表,对应关系如下:
-
region
对应阿里云Region ID -
endpoint
:http://buket.外网Endpoint
,比如http://bucket.oss-cn-hangzhou.aliyuncs.com
-
bucket
:对应阿里云存储桶名称
继续打开阿里云:访问凭证管理 获取AccessKey ID 和 AccessKey Secret
-
key
对应阿里云AccessKey ID -
secret
对应阿里云AccessKey Secret
完整的配置如下:
$config['s3']['region'] = 'oss-ap-southeast-1';
$config['s3']['endpoint'] = 'http://bucket.oss-ap-southeast-1.aliyuncs.com';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'bucket';
Backblaze B2
Backblaze是一家国外的备份、存储提供商,B2存储有免费10G的额度,价格非常低廉,如果存储1G的数据,仅需5$/月,如果有需要的可以前往:https://www.backblaze.com/ 进行注册。
登录B2后台 - 创建一个桶。
- 桶独特的名字:就是存储桶的名称
- 桶里面的档案是:公众
- 其它选项保持默认
找到刚刚创建的桶 - 点桶设定。
桶信息设置为{"cache-control":"max-age=604800"}
这一行的意思是让浏览器缓存7天,不然每次都回源,浪费流量。
继续点生命周期的设置 - 选择“只保留了最后版本的文件”
B2后台点击左侧 - 账户 - 我的应用程序键 - 添加新的应用程序密钥。
按照下图填写。
创建成功后程序密钥只会出现一次,之一复制并保存下来,稍后使用。
接下来修改config.php
填写S3配置信息,B2的配置参考如下:
/*------------------------------------- S3设置 -------------------------------------*/
$config['s3']['region'] = 'us-west-002';
$config['s3']['endpoint'] = 'https://s3.us-west-002.backblazeb2.com';
$config['s3']['key'] = 'xxx';
$config['s3']['secret'] = 'xxx';
$config['s3']['bucket'] = 'xxx';
/*------------------------------------- S3设置END -------------------------------------*/
-
key
:对应B2的keyID
-
secret
:对应B2的applicationKey
-
bucket
:对应B2的存储桶名称
region/endpoint
通过浏览B2的档案,获取到一个S3 URL地址,格式如:https://bucket.s3.us-west-002.backblazeb2.com/imgs/2022/03/28/00f925c6550c3154.jpg
那么region则为s3.us-west-002
,endpoint则为https://s3.us-west-002.backblazeb2.com