2014-04-10 6 views
0

Можно ли захватить размер объекта cloudfiles без извлечения всего объекта?Доступ к размеру объекта cloudfiles?

У меня есть 500 000 файлов, которые я хочу знать размер байта, но если я попрошу весь объект на каждом из них, он будет стоить мне 100 долларов в качестве платы за пропускную способность.

Я знаю, что могу получить список объектов в контейнере, но это только, кажется, дает мне имя объектов?

Спасибо, спасибо за помощь.

+1

На каком языке/SDK вы используете? – user2195538

+0

PHP, и (теперь устаревший) я думаю, что Rackspace Cloud Files API. Я думаю, мне нужно переключиться на opencloud API. – Codemonkey

ответ

2

Использование PHP SDK, у вас есть несколько вариантов:

  1. Если вы ищете размер каждого файла, вы можете получить список файлов в контейнере, а затем петлю над ними , вызовите метод getContentLength() для каждого файла в цикле.

  2. Если вы ищете общий размер, занимаемый всеми вашими 500 000 файлами, вы можете просто получить размер контейнера (ов), в котором они находятся. Вот код для этого: https://github.com/rackspace/php-opencloud/blob/master/docs/userguide/ObjectStore/USERGUIDE.md#get-bytes-used.

+0

Я использую (устаревший, я думаю) API Rackspace Cloud Files. Так что мне нужно переключиться на API opencloud? – Codemonkey

+0

На самом деле кажется, что get_objects возвращает массив объектов, каждый из которых имеет свойство content_length. По какой-то причине я получаю сообщение об ошибке «вызов неопределенной функции json_decode()», но, надеюсь, однажды я исправлю, что все будет хорошо. – Codemonkey

+0

Бинго, вот и все. Я все равно соглашусь на ваш ответ, хотя это не так, как я пошел ... спасибо за ваше время! – Codemonkey