我创建了一个Amazon S3 Bucket来存储我网站上的图像.我有超过100万张图像都具有公共读取权限.每次我登录时,亚马逊都会给我这个警告:
" 此存储桶具有公共访问权限您已提供对此存储桶的公共访问权限.我们强烈建议您永远不要授予对S3存储桶的任何类型的公共访问权限. "
我正在使用以下Bucket Policy仅允许在我的站点中显示图像:
{
"Version": "2012-10-17",
"Id": "http referer policy example",
"Statement": [
{
"Sid": "Allow get requests originated from www.example.com and example.com.br",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::examplebucket.com/*",
"Condition": {
"StringLike": {
"aws:Referer": [
"http://www.example.com/*",
"http://www.example.com.br/*",
"https://www.example.com/*",
"https://www.example.com.br/*"
]
}
}
}
]
}Run Code Online (Sandbox Code Playgroud)
如何撤消对存储桶和文件的公共访问权限并仅将其授予我的网站?
谢谢!
我正在使用 JAVA AWS SDK 将数千张图像上传到我的 s3 存储桶。
我创建了一个静态类型 AmazonS3 变量来连接到存储桶。我正在上传数千张图片,上传时间超过 24 小时。
由于我使用的是静态对象,因此我只需连接到存储桶一次,线程就会进行上传。我想知道在此过程中会话是否会过期,以及正确的方法是否是每次发送图像之前都进行连接。
这就是我实例化它的方式:
return AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(credentials)).withRegion(Regions.US_EAST_1).build();Run Code Online (Sandbox Code Playgroud)
谢谢!