XML と ZIP ファイルを作成し、SFTP 経由でサーバーにアップロードします。フォルダ構造は次のようになります。
/
|
|--/incoming
|
|--/<hash>
|
|-- file.xml
|-- file.zip
<hash>
XML と ZIP の両方をアップロードするとフォルダーが作成され、このフォルダーに権限が必要777
です。
私が知る限り、Java 内の VFS を介して既に作成されたフォルダーのアクセス許可を変更する方法はありません。私が試したのは、そのフォルダーをローカルに作成し、それを提供777
して、XML と ZIP を入れてアップロードすることでした。
私のコードは次のようになります。
File fUploadDir = new File(uploadDir);
fUploadDir.mkdir();
fUploadDir.setReadable(true, false);
fUploadDir.setWritable(true, false);
fUploadDir.setExecutable(true, false);
// Create and add ZIP and XML files...
// ...
StandardFileSystemManager manager = new StandardFileSystemManager();
// Initializes the file manager
manager.init();
File file = new File(pathToFolder);
// Setup our SFTP configuration
FileSystemOptions opts = new FileSystemOptions();
SftpFileSystemConfigBuilder.getInstance().setStrictHostKeyChecking(opts, "no");
SftpFileSystemConfigBuilder.getInstance().setUserDirIsRoot(opts, true);
SftpFileSystemConfigBuilder.getInstance().setTimeout(opts, 10000);
String sftpUri = "sftp://" + userId + ":" + password + "@" + serverAddress + "/" + remoteDirectory;
// Create local file object
FileObject localFile = manager.resolveFile(fUploadDir.getAbsolutePath());
// Create remote file object
FileObject remoteFile = manager.resolveFile(sftpUri, opts);
// Copy local file to sftp server
remoteFile.copyFrom(localFile, Selectors.SELECT_SELF_AND_CHILDREN);
このコードを実行すると、ディレクトリではなく XML と ZIP がアップロードされるため、SFTP サーバーの構造は次のようになります。
/
|
|--/incoming
|
|-- file.xml
|-- file.zip
そこにアクセス許可のあるフォルダーを取得するにはどうすればよい777
ですか?