我在媒体模块中运行以下Java代码:
File file = new File("/my/path/"+String.format("%02d", date)+"/"+streamAliasRef+".mp4");
// Destination directory
File dir = new File("/mnt/s3");
// Move file to new directory
boolean success = file.renameTo(new File(dir, file.getName()));
if (!success) {
getLogger().info("File failed to move to s3"+file.getName());
}
else {
getLogger().info("File moved to s3 successfully"+ file.getName());
}
Run Code Online (Sandbox Code Playgroud)
由于某种原因,我一直得到"文件未能转移到s3"
我对Java很新,所以如果这是一个简单的问题,请原谅我.我知道这两个目录都存在.可能与它有关的一个重要注意事项是我使用Fuse将S3存储桶挂载到文件系统.
在运行在unix上的Java中,renameTo仅在您位于同一文件系统中时才有效.因此,如果您要跨文件系统移动,则需要复制和删除原始文件.unix mv命令也可以执行此操作.这就是为什么mv在同一个文件系统上是即时的,但在文件系统中永远存在.它会检测不同的文件系统,并在这种情况下执行复制删除.
| 归档时间: |
|
| 查看次数: |
2949 次 |
| 最近记录: |