在Amazon S3中使用java创建多个空目录
问题描述:
我是S3的新手,我试图在S3中使用java在S3中创建多个目录,只调用一次S3。 我只能想出这样的: -在Amazon S3中使用java创建多个空目录
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
)的问题是,我必须做出10个呼叫S3。
但是我想立刻创建所有文件夹,就像我们使用DeleteObjectsRequest
进行批量删除一样。 任何人都可以请建议我或帮助我如何解决我的问题?
答
对于你想要做什么(或避免做什么),你可以更具体一些吗?
如果您主要关注每个PUT的成本,我不认为有一种方法可以批量“上传”目录,每个文件都是单独的密钥并避免成本。每个PUT(即使在批处理过程中)都会花费您每个PUT的价格。
如果您只是试图找到一种有效地递归上传文件夹的方法,请查看TransferManager的uploadDirectory()方法。
public MultipleFileUpload uploadDirectory(String bucketName,
String virtualDirectoryKeyPrefix,
File directory,
boolean includeSubdirectories)
我有十个空目录。我只想立即将它们上传到S3 – Newbie
MultipleFileUpload方法应该可以工作,尽管我从来没有使用它。对于includeSubdirectories参数使用true。 – Brooks
我实际上想在S3中创建多个空目录。我不想从本地存储上传它们 – Newbie