AmazonS3多部分上传
我已经使用多部分上传将图像上传到Amazon S3,如documentation中所述。AmazonS3多部分上传
但是,然后上传的文件可以直接访问,无需访问密钥或任何东西。使用从特定文件的响应中获取的远程URL进行测试。 有什么方法可以限制对上传文件的访问吗? 也有一种方法可以在这里更改上传URL,如果我想添加一个文件夹和文件?
是的,你可以通过下面的方法来创建文件夹。
AmazonS3 amazons3Client = new AmazonS3Client(new ProfileCredentialsProvider());
public void createFolder(String bucketName, String folderName)
{
try
{
ObjectMetadata objectMetaData = new ObjectMetadata();
objectMetaData.setContentLength(0);
InputStream emptyContent = new ByteArrayInputStream(new byte[0]);
amazons3Client.putObject(new PutObjectRequest(bucketName, folderName + "/", emptyContent, objectMetaData));
}
catch (Exception exception)
{
LOGGER.error("Exception In Create Folder", exception);
}
}
访问权限您可以使用策略,它会在具体应用到你的水桶,请点击以下链接 经过您可以允许特定的IP访问。 http://docs.aws.amazon.com/AmazonS3/latest/dev/example-bucket-policies.html
得到一个异常com.amazonaws.AmazonClientException:无法执行HTTP请求:读取超时。 –
而不是AmazonS3 amazons3Client = new AmazonS3Client(new ProfileCredentialsProvider());使用您的AmazonS3客户端对象。 – KPP
雅我做到了。我正在使用多部分上传。请求keyName更改为foldername +“/”+ key; ? http://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.html –
今起访问您的文件,你需要在这里按照指示:http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-access-control.html
它是覆盖在这里更详细:http://docs.aws.amazon.com/AmazonS3/latest/dev/intro-managing-access-s3-resources.html
thnx寻求帮助。这有所帮助。 –
加入这个工作。 request.setCannedACL(CannedAccessControlList.AuthenticatedRead); –
您需要为Amazon s3存储桶中的文件夹定义访问权限,因此可以限制 –
@RajuSharma,该声明不正确。 ** S3存储桶和对象默认安全且无法访问**。如果一个对象可能被意外地匿名下载,那么在上传过程中或者在存储桶策略或ACL中,用户会犯一个错误。您的评论意味着安全性需要“文件夹”。 –