CLOUDFLARE R2的aws S3应用
命令行和图形界面
继上次的CLOUDFLARE图床设置,因为网上都是推荐软件上传,但是软件上传实际上对纯命令行的工作环境来说使用体验非常不好,所以需要用命令行来进行操作。虽然命令行没有图形界面来的直观,但是程序员真正喜欢的应该还是直接的命令行。
兼容aws s3的CLOUDFLARE R2
R2根据官网介绍兼容部分s3,所以可以用aws s3的形式操作R2。但是平时办公环境还是在windows,所以还是得下载win版的awscli,如果是在linux可能就自己写点小脚本用aws的SDK了,在win下就算了吧,直接用cli。这里还是吐槽以下,在win下运行命令行是真的不习惯。
aws s3
1. 第一步就是下载相应版本的awscli
2. 配置configure
1
2
3
4
5
aws configure
AWS Access Key ID :
AWS Secret Access Key :
Default region name [auto]: auto
Default output format [json]: json
这里的key需要在R2里面进行设置。
3. 尝试列一下bucket信息
1
aws s3api list-buckets --endpoint-url https://[**R2-ID**].r2.cloudflarestorage.com
这里的
R2-ID
是CLOUDFLARE bucket给出的endpoint的地址
如果不出问题,将会正常列出bucket信息
1
2
3
4
5
6
7
8
9
10
11
12
13
{
"Buckets": [
{
"Name": "flyingbear",
"CreationDate": "2024-05-29T07:09:05.048000+00:00"
}
],
"Owner": {
"DisplayName": "bucket_name",
"ID": "bucket_id"
}
}
4. 尝试列以下bucket里面所有文件
1
2
aws s3api list-objects-v2 --endpoint-url https://[**R2-ID**].r2.cloudflarestorage.com --bucket flyingbear
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
"Contents": [
{
"Key": "favicon-64x64.png",
"LastModified": "2024-05-29T08:37:32.786000+00:00",
"ETag": "\"8cfe65bdd65ef606ca3793178abd29ae\"",
"Size": 8901,
"StorageClass": "STANDARD"
},
{
"Key": "flyingbear/2024/05/27280a963be030d47bc17708f3f76e5a.jpg",
"LastModified": "2024-05-29T08:21:58.109000+00:00",
"ETag": "\"27280a963be030d47bc17708f3f76e5a\"",
"Size": 55993,
"StorageClass": "STANDARD"
},
{
"Key": "flyingbear/2024/05/ab9fbe3794e04e4f973f86b62f343cdc.jpg",
"LastModified": "2024-05-29T08:28:40.502000+00:00",
"ETag": "\"ab9fbe3794e04e4f973f86b62f343cdc\"",
"Size": 153967,
"StorageClass": "STANDARD"
}
],
"RequestCharged": null
}
所有文件信息就可以直接看到了
5. 往bucket上传本地文件
1
aws s3 cp D:\hero_img_1.jpg s3://flyingbear/hero.jpg --endpoint-url https://[**R2-ID**].r2.cloudflarestorage.com
这里上传本地D盘下的hero_img_1.jpg
至flyingbear bucket下,并命名为hero.jpg
上传成功会有以下提示
1
upload: D:\hero_img_1.jpg to s3://flyingbear/hero.jpg
CLI的好处
这里就可以看出来,通过CLI上传,可以自由的控制路径和文件名,这样,只要我在本地把图片分类好,命名好,一个命令直接跟云端保持同步就好了,blog上的所有图片都可以直接利用文件名去引用就行了,不管怎么更换bucket都可以方便的进行迁移。
win下的使用体验
通过cli可以简单的跟云端仓库进行文件传输,但是每次执行命令的反应特别慢,不知道是因为key验证的速度问题还是什么,每次都需要大概半分钟到一分钟才能执行命令,这个实在是无法忍受。由于没在linux下对比,不知道这个是win下的问题,还是就是这样的。感觉这个问题需要优化。
This post is licensed under
CC BY 4.0
by the author.