黑夜流星 2019-12-26
用过aws的人,都知道s3存储东西贼方便。
他的上传有两个方法,
第一个是get_object(),是将文件的内容赋值给body,进行上传,并设置存储桶为上传文件为公开
response = s3.put_object(Bucket=bucket_tmp, Key=file_key, Body=content, ACL="public-read-write")
然后点击对应的文件路径,就有一个下载的s3对象url进行下载,如下图所示,会自动弹出:

第二个是upload_file
s3.upload_file(filename, bucket, key, callback, extra_args)
这种方法,就是上传的时候只需要填入文件的名称就可以实现上传,但是貌似不能设置这个文件的公开需要去配置s3的存储桶信息,那应该怎么办呢,我也没花时间研究,就直接很暴力看了文档,可以这么操作。
First: (这里注意一下使用第一种的上传方式,也要设置桶公开哈)

Second:是设置文件的公开:点击权限->点击存储桶策略,插入一下信息,
首先点击策略生成器,根据自己需要开通的权限,选择即可或者通过文档自己来编码这个json信息,然后将结果回填,保存即可!

可以参考这么写,两种上传都各有千秋,可以根据具体选择来做!
{
"Version": "2012-10-17",
"Id": "ExamplePolicy01",
"Statement": [
{
"Sid": "ExampleStatement01",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws-cn:iam::Account-ID:user/Dave"
},
"Action": [
"s3:GetObject",
"s3:GetBucketLocation",
"s3:ListBucket"
],
"Resource": [
"arn:aws-cn:s3:::examplebucket/*",
"arn:aws-cn:s3:::examplebucket"
]
}
]
}