2013-02-26 23 views
5

amazon s3のサブフォルダを含むアップロードフォルダが必要です。私はこのスニペットでアップロードしようとします。amazon s3にサブフォルダを含むフォルダをアップロードするには?

for (Path path : directoryWalk("/home/rmuhamedgaliev/tmp/eota7tas0cdlg2ufq5mlke7olf/")){ 
     if (!path.getParent().toString().equals("eota7tas0cdlg2ufq5mlke7olf")){ 
     amazonS3Client.putObject("*****", "/plans/eota7tas0cdlg2ufq5mlke7olf/" + path.getParent().toString() + "/" + path.getFileName(), new File(path.toString())); 
     } else { 
     amazonS3Client.putObject("*******", "/plans/eota7tas0cdlg2ufq5mlke7olf/" + path.getFileName(), new File(path.toString())); 
     } 
    } 

しかし、このコードは、( "/ホーム/ rmuhamedgalievを/ tmp/eota7tas0cdlg2ufq5mlke7olf")でフルパスファイルを作成します。 ( "/計画/ eota7tas0cdlg2ufq5mlke7olf/{サブフォルダとファイル}")のパスでそれをアップロードする方法

private List<Path> directoryWalk(String path) throws IOException { 
     final List<Path> files = new ArrayList<>(); 
     Files.walkFileTree(Paths.get(path), new SimpleFileVisitor<Path>() { 

      @Override 
      public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException { 
       files.add(file); 
       return FileVisitResult.CONTINUE; 
      } 
     }); 
     return files; 
    } 

答えて

12

あなたはJava用AWS SDKにTransferManagerで見たことがありますか?これにはuploadDirectoryメソッドを使用できます。 javadocはhereです。本質的に、あなたは次のようなことをすることができます:

transferManager.uploadDirectory(bucketName, "plans/eota7tas0cdlg2ufq5mlke7olf/", new File("/home/rmuhamedgaliev/tmp/eota7tas0cdlg2ufq5mlke7olf/"), true); 
1

私は自分の方法を書いています。私は、進行状況インジケータの助けを借りてアップロードする必要があるすべての写真は、それが可能である、そのような写真の数が含まれている私は、フォルダ名があるとし、「TestMech」として単一のフォルダ内に存在するすべてのファイルをアップロードしたい&

 List<File> files = new LinkedList<File>(); 
     listFiles(new File("/home/rmuhamedgaliev/tmp/eota7tas0cdlg2ufq5mlke7olf"), files, true); 
     for (File f : files) { 
      String key = f.getAbsolutePath().substring(new File("/home/rmuhamedgaliev/tmp/eota7tas0cdlg2ufq5mlke7olf").getAbsolutePath().length() + 1) 
       .replaceAll("\\\\", "/"); 
      amazonS3Client.putObject("****", "plans/eota7tas0cdlg2ufq5mlke7olf/" + key, f); 
     } 
+0

どうやって –

関連する問題