亚马逊 AWS S3 文件上传。如何设置文件权限?
Amazon AWS S3 file upload. How to set file permissions?
我正在使用亚马逊的 AWS SDK (S3) 上传文件,一切正常。下面是我的代码:
final AWSCredentials credentials = new AWSCredentials() {
@Override
public String getAWSAccessKeyId() {
return "...myAccessKey...";
}
@Override
public String getAWSSecretKey() {
return "...mySecretKey...";
}
};
final StaticCredentialsProvider credentialsProvider = new StaticCredentialsProvider(credentials);
final TransferManager transferManager = new TransferManager(credentialsProvider);
final Upload upload = transferManager.upload(Config.AWS_IMAGE_BUCKET, "images/" + file.getName(), file);
问题是,每当我上传这样的东西时,权限都没有设置为 public,所以我不能在我的应用程序中使用它们。
如何从我的代码中设置文件权限,以便 public 可以查看?
谢谢!
您需要提供 PutObjectRequest with the ACLs you want when you call upload.
将文件放入存储桶时选择合适的ACL策略。
可以是以下选项之一:
1) ACL_AUTHENTICATED_READ
允许经过身份验证的用户进行读取访问。
2) ACL_PRIVATE
只允许私人访问文件。
3) ACL_PUBLIC_READ.
允许 public 读取文件。
4) ACL_PUBLIC_READ_WRITE
当您将文件写入存储桶时,允许 public 对文件进行读写访问。
我正在使用亚马逊的 AWS SDK (S3) 上传文件,一切正常。下面是我的代码:
final AWSCredentials credentials = new AWSCredentials() {
@Override
public String getAWSAccessKeyId() {
return "...myAccessKey...";
}
@Override
public String getAWSSecretKey() {
return "...mySecretKey...";
}
};
final StaticCredentialsProvider credentialsProvider = new StaticCredentialsProvider(credentials);
final TransferManager transferManager = new TransferManager(credentialsProvider);
final Upload upload = transferManager.upload(Config.AWS_IMAGE_BUCKET, "images/" + file.getName(), file);
问题是,每当我上传这样的东西时,权限都没有设置为 public,所以我不能在我的应用程序中使用它们。
如何从我的代码中设置文件权限,以便 public 可以查看?
谢谢!
您需要提供 PutObjectRequest with the ACLs you want when you call upload.
将文件放入存储桶时选择合适的ACL策略。
可以是以下选项之一:
1) ACL_AUTHENTICATED_READ
允许经过身份验证的用户进行读取访问。
2) ACL_PRIVATE
只允许私人访问文件。
3) ACL_PUBLIC_READ.
允许 public 读取文件。
4) ACL_PUBLIC_READ_WRITE
当您将文件写入存储桶时,允许 public 对文件进行读写访问。