Несоответствие числа клиентских объектов Python Swift с актуальными объектами в облаке
Я использую следующую команду, чтобы перечислить все объекты в контейнере и дамп в файл журнала.
swift -A url -U username -K password list container_name> log.txt
Я проверил количество строк в выходном файле журнала, и он показывает количество 1076857. Но когда я проверил облако вручную и нашел счетчик, который показывает 1081756. В чем может быть причина этого несоответствия? Вышеприведенная команда исключает пустую папку?
Пожалуйста, предложите.
1 ответ
Большие файлы (более 5 ГБ) хранятся в Swift частично (?), Которые называются сегментами.
Например:
Предположим, у нас есть файл размером 13 ГБ и именем log.txt.
Мы хотим загрузить его в контейнер container1.
Это был сценарий, и Swift делает следующее:
Swift берет этот файл и делит на сегменты, которые:
log.txt_segment1 ---> size 5GB log.txt_segment2 ---> size 5GB log.txt_segment3 ---> size 3GB
- Swift создает объект с именем
log.txt
вcontainer1
с размером 0MB. На самом деле это не реальный объект, это только псевдоним. - Затем Swift создает еще один контейнер с именем
container1_segments
который хранит реальный объект (сегментированный объект) изcontainer1
, - Затем 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.