我想通过使用他们的Java API将文件从云提供商移动到另一个。
在源云提供程序上,我可以获取文件作为输入流,或者可以将其下载到File对象(使用文件输出流)。目标云提供程序接受要存储为输入流(需要内容长度)或文件对象的文件。
通过
移动文件更好吗?有哪些优点/缺点?
第一个移动策略的优点是它需要更少的磁盘空间。但他们有任何性能差异吗?
答案 0 :(得分:1)
除非您知道要传输的文件适合内存,否则我不会使用File对象。使用流媒体。在将文件发送到目标提供程序之前,您仍然可以在本地存储该文件。
答案 1 :(得分:0)
通过使用流复制方法将文件内容保存在内存中可能会略微提高性能,因为您没有发生磁盘绑定I / O等待。也就是说,进出云存储API的流量的网络时间可能是您的主要瓶颈,因此它不太可能产生重大影响。
将文件写入磁盘的一个可能的优点是,您可以自动获得所有内容的额外备份,并且如果上载失败,可能会有更简单的基础来执行重试。