0

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

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

移动文件是否更好

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

有什么优点/缺点?

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

4

2 回答 2

1

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

于 2013-04-02T14:54:18.660 回答
0

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

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

于 2013-04-02T14:50:11.253 回答