我有一个AWS S3存储桶,我想通过网址(我的图像和视频链接等)访问我的大部分文件 - 这已经完成了。我有其他文件,我不想从URL访问,这些将是音频文件(MP3,WAV,flac等)。我只希望用户能够通过php脚本访问我的音频文件,并将其提供给浏览器。或多或少,我不希望用户通过猜测文件所在的AWS桶的URL来访问这些文件。
我很难过。任何人都可以指出我正确的方向。感谢。
答案 0 :(得分:4)
您可以将文件设为私有并生成已签名的网址,以允许某人临时访问这些文件:Share an Object with Others
或者,您可以设置一项政策,限制用户直接访问这些文件,只允许他们访问从您的网站链接的文件:Restricting Access to a Specific HTTP Referrer
或者您可以通过PHP脚本发送文件来提供这些文件,即将文件下载到PHP服务器并从那里返回文件内容。在这种情况下,您可以在S3中将这些文件设为私有,甚至可以将它们移动到完全私有的单独存储桶中。我不推荐这种方法,因为它会给您的服务器带来更多负担。
答案 1 :(得分:0)
听起来像对存储桶策略的更新会有所帮助。以下是允许访问可以修改以拒绝访问的示例:http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html#example-bucket-policies-use-case-2。
答案 2 :(得分:0)
您可以在存储桶下构建内容:
并创建类似于:
的存储桶策略{
"Id": "Policy1459891655092",
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1459891443631",
"Action": [
"s3:GetObject"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::bucketname/public/*",
"Principal": "*"
}
]
}
更改" bucketname"到你的实际s3桶名。