如何解决隐藏S3下载源
我正在将invisioncommunity论坛软件与下载应用程序一起使用。 我通过Amazon S3为访客提供下载。
下载文件时,下载源链接到我的S3存储桶(https://s3.eu-central-1.amazonaws.com/my.bucket.net/file),我不想要那样。 我希望它看起来像:https://my.bucket.net/file
我可以使用签名的URL还是仅隐藏下载源?还是最好的选择是什么?
此外,当我在浏览器中导航到存储桶URL(未登录S3)时,我看到一个XML列表,其中列出了存储桶中列出的所有文件。我可以藏起来吗?
我在Google上发现了很多内容(创建CNAME等),但似乎没有任何效果。
解决方法
为此,您可以使用CloudFront distribution,它实际上将允许您通过DNS配置使用custom name。
这仍将返回x-amz
标头,因此,如果要删除标头,则需要向CloudFront发行版中添加Lambda@Edge。如果您对此方法感兴趣,请参考以下example functions。
此外,如果客户在地理位置上与您的S3存储桶AWS区域相距较远,则他们将从延迟减少中受益。
关于选项(文件列表),它来自ListObjects
权限,请确保唯一的公共权限是GetObject
。
为此,建议使用以下存储桶策略。
{
"Version":"2012-10-17","Statement":[
{
"Sid":"PublicRead","Effect":"Allow","Principal": "*","Action":["s3:GetObject"],"Resource":["arn:aws:s3:::awsexamplebucket1/*"]
}
]
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。