Java 如何使用Android Sdk在aws S3 bucket中创建空文件夹?
我理解Aws S3 bucket中文件夹和对象的概念,即没有文件夹,所有都是对象。但我需要创建一个空文件夹,用户可以在其中输入和上传他们的文件。 我尝试过几种方法,比如添加一个test.txt文件,该文件的路径在“/”之后扩展了空文件夹的名称,它确实创建了文件夹,但它保留了test.txt文件,如果删除该文件,也会删除创建的文件夹Java 如何使用Android Sdk在aws S3 bucket中创建空文件夹?,java,android,amazon-web-services,amazon-s3,aws-amplify-sdk-android,Java,Android,Amazon Web Services,Amazon S3,Aws Amplify Sdk Android,我理解Aws S3 bucket中文件夹和对象的概念,即没有文件夹,所有都是对象。但我需要创建一个空文件夹,用户可以在其中输入和上传他们的文件。 我尝试过几种方法,比如添加一个test.txt文件,该文件的路径在“/”之后扩展了空文件夹的名称,它确实创建了文件夹,但它保留了test.txt文件,如果删除该文件,也会删除创建的文件夹 那么,您知道如何创建一个在S3存储的web控制台中创建的零大小空文件夹对象吗?任何帮助都会很好使用您选择的SDK创建一个名为folder1/folder2/cats/
那么,您知道如何创建一个在S3存储的web控制台中创建的零大小空文件夹对象吗?任何帮助都会很好使用您选择的SDK创建一个名为
folder1/folder2/cats/
的S3对象,大小为0字节。这假设您首选的文件夹分隔符是/
,这显然是最常用的分隔符,但您可以使用任何您喜欢的分隔符
下面是一个通用示例。修改此选项,使对象键为
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());
}
}
谢谢你的回复。好的,我创建了一个名为something并以“/”结尾的对象,但是upload方法有两个参数,一个是s3存储中的路径,另一个是java文件。现在,如何在没有任何扩展名、零长度和所述名称的情况下创建java文件?。任何代码示例都会很有帮助,或者链接有许多
putObject
方法。您不需要提供文件。最好的选择可能是允许你提供一个空内容字符串的方法。Thanxx一吨先生,实际上我使用的是他们最新的transferUtility方法,它接受了这些参数,不知道有这么多putObject方法显示我可以使用AWS amplify kotlin删除此文件夹吗?@NensiKasundra“文件夹”只是另一个S3对象。像删除任何S3对象一样删除它。