Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用Android Sdk在aws S3 bucket中创建空文件夹?_Java_Android_Amazon Web Services_Amazon S3_Aws Amplify Sdk Android - Fatal编程技术网

Java 如何使用Android Sdk在aws S3 bucket中创建空文件夹?

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/

我理解Aws S3 bucket中文件夹和对象的概念,即没有文件夹,所有都是对象。但我需要创建一个空文件夹,用户可以在其中输入和上传他们的文件。 我尝试过几种方法,比如添加一个test.txt文件,该文件的路径在“/”之后扩展了空文件夹的名称,它确实创建了文件夹,但它保留了test.txt文件,如果删除该文件,也会删除创建的文件夹


那么,您知道如何创建一个在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对象一样删除它。