vultr的object storage挺香的,250GB存储,1TB流量,一个月只需要$5,因为节点的原因,国内的速度比较差,但是用一台线路好一些的VPS反代一下,还是不错的
获取Secret Key和Access Key
进入vultr后台,查看Secret Key和Access Key
新建bucket
这里,我们新建一个名为yhhjzp的bucket

安装boto3
pip3 install boto3这里安装的最新版本为1.13.5
创建配置文件
mkdir ~/.awsvim ~/.aws/credentials内容为:
[default]
aws_access_key_id = 你的Access Key
aws_secret_access_key = 你的Secret Keyvim ~/.aws/config内容为:
[default]
region=ewr1.vultrobjects.com注:因为现在vultr暂时只开了新泽西一个地区的对象存储,所以regin这边统一为ewr1.vultrobjects.com
编写上传脚本
import boto3
s3 = boto3.resource('s3')
with open('1.jpg', 'rb') as f:
data = f.read()
s3.Bucket('yhhjzp').put_object(Body=data, Key='test.jpg', ContentType='image/jpeg', ACL='public-read')修改
执行脚本,发现报错

botocore.exceptions.EndpointConnectionError: Could not connect to the endpoint URL: "https://yhhjzp.s3.vultrobjects.com.amazonaws.com/test.jpg"错误原因是endpoint错了,我们发现多了s3和amazonaws.com,导致了endpoint不存在
这里我的解决办法是修改boto3的源代码,需要修改的地方为botocore模块下的client.py文件

找到这一行,将DEFAULT_ENDPOINT = '{service}.{region}.amazonaws.com'改为DEFAULT_ENDPOINT = '{region}'
再次执行上传文件的脚本,成功上传
