基于内容审核的原因,目前还无法将
object设为
Public。
但我们已经支持设置成任何人通过http访问该文件了。把bucket设置为public-read权限即可。但是,为了防止别人盗用链接,最好还是通过signed_url_with_expire_time签名后url给外部访问。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
您的描述涉及到了阿里云对象存储OSS(Object Storage Service)的权限管理和访问控制。根据您的需求,这里有一些建议:
设置Bucket为Public-read权限:
使用Signed URL防止链接盗用:
generate_presigned_url
方法来生成一个带有过期时间的URL。这不需要您直接处理签名过程的细节,SDK会为您完成。示例代码(Python):
from oss2 import Auth, Bucket
# 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
auth = Auth('<yourAccessKeyId>', '<yourAccessKeySecret>')
bucket = Bucket(auth, 'http://oss-cn-hangzhou.aliyuncs.com', '<yourBucketName>')
# 设置URL过期时间为1小时后
expiration = 3600
# 生成签名URL
object_name = 'example.txt'
url = bucket.sign_url('GET', object_name, expiration)
print(url)
请替换<yourAccessKeyId>
、<yourAccessKeySecret>
和<yourBucketName>
以及example.txt
为您自己的信息和对象键。
通过这种方式,您既能满足公开分享文件的需求,又能确保分享的安全性和可控性。