因此,我正在使用TransferManager
将目录中的所有文件上传到S3中
而且我也可以上传。
但是我在同一个dir文件中的问题也被写入了。
因此,如何调用该方法写入S3。
我必须在固定间隔上调用该方法吗?
请建议什么是调用该方法的最佳方法。
public void uploadDir(Path strFile,String strFileName){
ArrayList<File> files = new ArrayList<File>();
for (Path path : strFile) {
files.add(new File(path.toString()));
}
TransferManager xfer_mgr = TransferManagerBuilder.standard().build();
try {
MultipleFileUpload xfer = xfer_mgr.uploadFileList(bucketName,strFileName, new File("."), files);
//XferMgrProgress.showTransferProgress(xfer);
//XferMgrProgress.waitForCompletion(xfer);
} catch (AmazonServiceException e) {
System.err.println(e.getErrorMessage());
System.exit(1);
}
}
答案 0 :(得分:0)
您可以根据需要选择任何一种解决方案。
解决方案1:-对于像您这样的scanrio,您应该使用Ver 15.1 Distrib 10.1.36-MariaDB, for Win32 (AMD64)
。而不是时间间隔。
FileAge:上次修改文件时,文件轮询器使用的这一通用概念是本地目录还是远程目录。
因此,以为您的文件占用了最多的空间。写入20秒,然后仅提取20s或更长时间的文件。
解决方案2:-
另一种方法是要求您的客户,生成文件的程序使用扩展名为.tmp的文件,当文件写入完成时,要求他们将其转换为实际的文件扩展名,并修改程序以跳过扩展名为.tmp的文件。 例如,在将
fileAge
写入abc.jpg
的同时,完成文件写入后,将其重命名为abc.jpg.tmp
。
希望这会有所帮助。