我是S3的新手,我试图通过只调用一次来使用java在Amazon S3中创建多个目录。 我只想出这个: -
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(0);
InputStream emptyContent = new ByteArrayInputStream(new byte[0]);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket,
"test/tryAgain/", emptyContent, metadata);
s3.putObject(putObjectRequest);
但是上传10个文件夹(when the key ends with "/" in the console we can see the object as a folder
)时出现这个问题的原因是我必须对S3进行10次调用。
但我想一次创建所有文件夹,就像我们使用DeleteObjectsRequest
进行批量删除一样。
任何人都可以建议我或帮助我如何解决我的问题?
答案 0 :(得分:0)
您能否更具体地了解您尝试做什么(或避免做什么)?
如果您主要关注每个PUT的费用,我认为没有办法批量上传'一个目录,每个文件都是一个单独的密钥,并避免这种成本。每个PUT(即使是批处理过程)也会花费你每PUT的价格。
如果您只是想找到一种有效且递归上传文件夹的方法,请查看TransferManager的uploadDirectory()方法。
public MultipleFileUpload uploadDirectory(String bucketName,
String virtualDirectoryKeyPrefix,
File directory,
boolean includeSubdirectories)