Amazon S3にアップロードしたファイルのフォルダ名が削除される
JavaよりMultipleFileUploadクラスのuploadFileListメソッドを使用し、
ローカルの画像をS3に作成したバケット直下にアップロードをした場合、
直下に作成されるフォルダ名が先頭2文字削除された名前で作成されています。
フォルダ名を削除せずにファイルをアップロードするにはどうすればよいでしょうか?
- ローカルのフォルダ構成
C:/study/pleiades/workspace/AmazonAWS/img/photo/001/001_01.jpg
C:/study/pleiades/workspace/AmazonAWS/img/photo/002/002_01.jpg
C:/study/pleiades/workspace/AmazonAWS/img/photo/002/001/002_001_01.jpg
- S3上に作成されたフォルダ構成
/バケット名/g/photo/001/001_01.jpg
/バケット名/g/photo/002/002_01.jpg
/バケット名/g/photo/002/001/002_001_01.jpg
- 出来てほしいフォルダ構成
/バケット名/img/photo/001/001_01.jpg
/バケット名/img/photo/002/002_01.jpg
/バケット名/img/photo/002/001/002_001_01.jpg
アップロード処理
// アップロードするファイルを定義 List<String> filePathList = Arrays.asList( "C:/study/pleiades/workspace/AmazonAWS/img/photo/001/001_01.jpg" ,"C:/study/pleiades/workspace/AmazonAWS/img/photo/002/001/002_001_01.jpg" ,"C:/study/pleiades/workspace/AmazonAWS/img/photo/002/002_01.jpg" ); ArrayList<File> files = new ArrayList<File>(); for (String path : filePathList) { files.add(new File(path)); } TransferManager xfer_mgr = TransferManagerBuilder.standard() .withS3Client(s3Client) try { // ファイルアップロード MultipleFileUpload xfer = xfer_mgr.uploadFileList(BUCKET_NAME, "", new File("."), files); // ファイルアップロードを監視 TransferProgress progress = xfer.getProgress(); while(!xfer.isDone()) { Thread.sleep(100); } } catch (AmazonServiceException e) { System.err.println(e.getErrorMessage()); } finally { xfer_mgr.shutdownNow(); }
補足情報(FW/ツールのバージョンなど)
AWS SDK for Java のjarファイルは下記を使用しています。
aws-java-sdk-1.11.313.jar
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。