如何将存储桶 s3 上的文件上传为可读且不可下载
How to upload file on bucket s3 as readable and not downloadable
我正在尝试通过 public 访问权限将声音上传到我的存储桶。
我制作了一个 python 脚本来上传 .wav 文件。执行后:我的问题如下:
- 有时我会得到一个 url 来呈现可读的声音(我可以在浏览器中收听声音而无需下载)
- 有时我得到一个 url 触发下载
我不明白为什么会有2个行为,我只想得到可读的声音
这是我的 python 脚本:
s3 = boto3.resource('s3')
try:
s3.Bucket(BUCKET_NAME).upload_file(KEY, FILENAME, ExtraArgs={'ACL':'public-read'})
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
有一个我想要的例子(可读的声音):
还有一个我不再想要的示例(可下载的声音)我不知道为什么,对于许多声音,当我单击 url 时它会触发下载:
感谢您的宝贵时间
这可能是由于以下两个原因之一造成的:
- 您正在上传的文件的 Content-Type 是
binary/octet-stream
,因此在上传文件时覆盖 Content-Type ,如下所示。
2。浏览器不支持预览的文件类型,如果浏览器已经是最新的,我们大多不能这样做,否则通过更新浏览器检查一次。
我正在尝试通过 public 访问权限将声音上传到我的存储桶。 我制作了一个 python 脚本来上传 .wav 文件。执行后:我的问题如下:
- 有时我会得到一个 url 来呈现可读的声音(我可以在浏览器中收听声音而无需下载)
- 有时我得到一个 url 触发下载
我不明白为什么会有2个行为,我只想得到可读的声音
这是我的 python 脚本:
s3 = boto3.resource('s3')
try:
s3.Bucket(BUCKET_NAME).upload_file(KEY, FILENAME, ExtraArgs={'ACL':'public-read'})
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print("The object does not exist.")
else:
raise
有一个我想要的例子(可读的声音):
还有一个我不再想要的示例(可下载的声音)我不知道为什么,对于许多声音,当我单击 url 时它会触发下载:
感谢您的宝贵时间
这可能是由于以下两个原因之一造成的:
- 您正在上传的文件的 Content-Type 是
binary/octet-stream
,因此在上传文件时覆盖 Content-Type ,如下所示。
2。浏览器不支持预览的文件类型,如果浏览器已经是最新的,我们大多不能这样做,否则通过更新浏览器检查一次。