在云提供商之间移动文件

时间:2013-04-02 14:44:56

标签: java file cloud inputstream move

我想通过使用他们的Java API将文件从云提供商移动到另一个。

在源云提供程序上,我可以获取文件作为输入流,或者可以将其下载到File对象(使用文件输出流)。目标云提供程序接受要存储为输入流(需要内容长度)或文件对象的文件。

通过

移动文件更好吗?
  • 在云存储提供商处获取文件的输入流和内容长度,并使用这些数据存储在目标云提供商或
  • 首先将源云提供商上的文件下载到File对象,然后将其存储在目标云提供商上。

有哪些优点/缺点?

第一个移动策略的优点是它需要更少的磁盘空间。但他们有任何性能差异吗?

2 个答案:

答案 0 :(得分:1)

除非您知道要传输的文件适合内存,否则我不会使用File对象。使用流媒体。在将文件发送到目标提供程序之前,您仍然可以在本地存储该文件。

答案 1 :(得分:0)

通过使用流复制方法将文件内容保存在内存中可能会略微提高性能,因为您没有发生磁盘绑定I / O等待。也就是说,进出云存储API的流量的网络时间可能是您的主要瓶颈,因此它不太可能产生重大影响。

将文件写入磁盘的一个可能的优点是,您可以自动获得所有内容的额外备份,并且如果上载失败,可能会有更简单的基础来执行重试。