Python Swift 客户端对象计数与云中的实际对象不匹配

Python Swift Client Object count mismatch with the actutal objects in cloud

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

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

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

求推荐。

大文件(大于 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 在 container1 中创建了一个名称为 log.txt 大小为 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.

的对象计数不匹配