0

我正在使用以下命令列出容器中的所有对象并转储到日志文件中。

swift -A url -U username -K password list container_name> log.txt

我检查了输出日志文件中的行数,它显示了计数 1076857。但是当我手动检查云并找到显示1081756的计数时。这种不匹配的原因可能是什么?上面的命令是否排除了空文件夹?

请建议。

4

1 回答 1

2

大文件(大于 5GB)部分存储在 Swift 上(?),称为段。

例如:
假设我们有一个大小为13 GB且名称为log.txt的文件。
我们想将它上传到容器container1

这就是场景,Swift 做了以下事情

  1. Swift 获取此文件并分为以下部分:

     log.txt_segment1 ---> size 5GB   
     log.txt_segment2 ---> size 5GB   
     log.txt_segment3 ---> size 3GB
    
  2. Swift 创建一个名称为log.txtincontainer1大小为 0MB的对象。其实这个不是实物,只是别名而已。
  3. 然后 Swift 创建另一个容器,其名称container1_segments存储container1.
  4. 然后 Swift 将 log.txt 的片段上传到container1_segments.

那么,我们现在有什么?
- 我们有2 个容器[ container1, container1_segments]
- 我们有4 个对象[ log.txt, log.txt_segment1, log.txt_segment2, log.txt_segment3]

理论上
我们应该有1 个容器和 1 个对象,但是我们有2 个容器和 4 个对象;也许这会导致您的 Swift 的对象计数不匹配。

于 2016-01-08T20:28:03.213 回答