如何使用 Android Sdk 在 aws S3 存储桶中创建一个空文件夹?
How to create an empty folder in aws S3 bucket with using Android Sdk?
我理解Aws S3 bucket中文件夹和对象的概念,没有文件夹,都是对象。但我需要创建一个空文件夹,用户可以在其中输入和上传他们的文件。
我尝试了几种方法,比如添加一个测试 .txt 文件,其路径在“/”之后扩展空文件夹的名称,它确实创建了文件夹,但它保留了 test.txt 文件,如果我删除它,也会删除创建的文件夹.
关于如何创建一个零大小的空文件夹对象,就像在 S3 存储的 Web 控制台中创建的那样,您知道吗?任何帮助都会很棒
使用您选择的 SDK 创建一个名为 folder1/folder2/cats/
的 S3 对象,大小为 0 字节。这假设您首选的文件夹分隔符是 /
,这显然是最常用的分隔符,但您可以使用任何您喜欢的分隔符。
这是一个通用的 Java upload an object 示例。修改这个,对象键为folder1/folder2/cats/
,不上传任何内容。
尽管时间很长,也许这段代码可以帮助有同样问题的人。我正在使用 Java 的 SDK。我假设您已经配置了一个 clients3 并且可以正常工作。所以我要在这里模拟他的注射。
查看createFolder方法:
@Inject
private AmazonS3 s3client;//Your configurated s3Client
private final String SUFFIX = "/";
//Create a conceitual folder into bucketName
public void createFolder(String bucketName, String folderName) {
try {
// Create metadata with content 0
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(0L);
// Empty content
InputStream inputStream = new ByteArrayInputStream(new byte[0]);
// Creates a PutObjectRequest by passing the folder name with the suffix
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,
folderName.toString() + SUFFIX, inputStream, metadata);
//Send the request to s3 to create the folder
s3client.putObject(putObjectRequest);
}catch (Exception e) {
throw new RepositoryException("Error creating folder "+folderName,
ErrorCode.SERVER_ERROR.getCode());
}
}
我理解Aws S3 bucket中文件夹和对象的概念,没有文件夹,都是对象。但我需要创建一个空文件夹,用户可以在其中输入和上传他们的文件。 我尝试了几种方法,比如添加一个测试 .txt 文件,其路径在“/”之后扩展空文件夹的名称,它确实创建了文件夹,但它保留了 test.txt 文件,如果我删除它,也会删除创建的文件夹.
关于如何创建一个零大小的空文件夹对象,就像在 S3 存储的 Web 控制台中创建的那样,您知道吗?任何帮助都会很棒
使用您选择的 SDK 创建一个名为 folder1/folder2/cats/
的 S3 对象,大小为 0 字节。这假设您首选的文件夹分隔符是 /
,这显然是最常用的分隔符,但您可以使用任何您喜欢的分隔符。
这是一个通用的 Java upload an object 示例。修改这个,对象键为folder1/folder2/cats/
,不上传任何内容。
尽管时间很长,也许这段代码可以帮助有同样问题的人。我正在使用 Java 的 SDK。我假设您已经配置了一个 clients3 并且可以正常工作。所以我要在这里模拟他的注射。 查看createFolder方法:
@Inject
private AmazonS3 s3client;//Your configurated s3Client
private final String SUFFIX = "/";
//Create a conceitual folder into bucketName
public void createFolder(String bucketName, String folderName) {
try {
// Create metadata with content 0
ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(0L);
// Empty content
InputStream inputStream = new ByteArrayInputStream(new byte[0]);
// Creates a PutObjectRequest by passing the folder name with the suffix
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName,
folderName.toString() + SUFFIX, inputStream, metadata);
//Send the request to s3 to create the folder
s3client.putObject(putObjectRequest);
}catch (Exception e) {
throw new RepositoryException("Error creating folder "+folderName,
ErrorCode.SERVER_ERROR.getCode());
}
}