2016-08-05 6 views
1

私はS3が初めてで、S3を呼び出すだけでJavaを使用してAmazon 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)をアップロード中にこれに伴う問題は、私はS3への10回の呼び出しを行う必要があるということです。

しかし、私は一度にすべてのフォルダを作成するには、を使用してバッチ削除を実行してください。 誰でも私の提案をしたり、私の問題の解決方法を教えてもらえますか?

答えて

0

あなたは何をしようとしている(またはやりたくない)かについてもう少し具体的にすることはできますか?

主にPUTあたりのコストに関心がある場合は、各ファイルを別々のキーにしてディレクトリを一括して 'アップロード'してそのコストを避ける方法はないと思います。各PUT(バッチ処理中であっても)はPUTごとに価格がかかります。

効率的かつ再帰的にフォルダをアップロードする方法を探しているだけの場合は、TransferManagerのuploadDirectory()メソッドを確認してください。

http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/transfer/TransferManager.html#uploadDirectory-java.lang.String-java.lang.String-java.io.File-boolean-

public MultipleFileUpload uploadDirectory(String bucketName, 
             String virtualDirectoryKeyPrefix, 
             File directory, 
             boolean includeSubdirectories) 
+0

私は10個の空のディレクトリを持っています。私はただS3にそれらを一度にアップロードしたいです – Newbie

+0

私はそれを使用したことはありませんが、MultipleFileUploadメソッドは動作するはずです。 includeSubdirectoriesパラメーターにtrueを使用します。 – Brooks

+0

私は実際にS3で複数の空のディレクトリを作成したいと思っています。私はローカルストレージからそれらをアップロードしたくない – Newbie

関連する問題