Сколько BLOB-объектов можно отправить в хранилище BLOB-объектов GAE за один вызов?

Я пытаюсь загрузить 1744 небольших файла в blobstore (общий размер всех файлов составляет 4 МБ) и получаю ошибку HTTP/1.1 503 Service Unreachable.

Это 100% воспроизводимость.

Это ошибка, я нарушаю какие-либо ограничения? Я не вижу в документации никаких ограничений на количество больших двоичных объектов, отправленных за один вызов.


person user431640    schedule 27.08.2012    source источник


Ответы (2)


Ответ, в котором утверждается, что create_upload_url может принимать только один файл для каждой загрузки выше, неверен. Вы можете загружать несколько файлов за одну загрузку, и именно так вы должны подходить к своей проблеме.

При этом возникла проблема с надежностью при пакетном выполнении. загрузку, над которой работали и исправили около года назад. Если возможно, я бы предложил немного уменьшить размеры пакетов (скажем, 100 или около того файлов в пакете). Каждый файл в пакете приводит к записи в хранилище данных для записи ключа большого двоичного объекта, поэтому 1744 файла == 1744 записи, и если один из них завершается с ошибкой, то вся ваша загрузка не будет выполнена.

Если вы дадите мне app_id, я смогу посмотреть, что может пойти не так с вашими загрузками.

person Stuart Langley    schedule 27.08.2012
comment
app_id — это cl-test-grid, было бы здорово, если бы вы взглянули - person user431640; 27.08.2012
comment
Я удалил свой ответ.. но я не совсем ошибся :) я не мог найти, где я читал о том, что что-то было сломано.. спасибо за понимание :) - person Lipis; 27.08.2012
comment
Стюарт, я зарегистрировал его как билет: code.google.com. /p/googleappengine/issues/detail?id=8032 - person user431640; 28.08.2012
comment
Кстати, к сожалению, разделение пакета на более мелкие не является немедленно доступной альтернативой, это потребует изменения логики приложения, потому что теперь каждая загрузка приводит к отправке электронного письма администратору, и если мы разделим его, количество электронных писем увеличится. по заказу 10. - person user431640; 28.08.2012
comment
конечно, я понимаю - вы всегда можете переместить отправку электронной почты в решение на основе очереди задач, где вы откладываете отправку почты до тех пор, пока не будут загружены все большие двоичные объекты. - person Stuart Langley; 29.08.2012
comment
К вашему сведению, я обновляю проблему, которую вы открыли, но в настоящее время вы не можете отправить › 500 больших двоичных объектов в одном запросе из-за того, как мы группируем записи в хранилище данных. Мы исправим это, но не для 1 или 2 релизов. - person Stuart Langley; 30.08.2012

Итак, ответ. В настоящее время в одном запросе можно отправить только ‹ 500 файлов. Это будет исправлено в рамках заявки http://code.google.com/p/googleappengine/issues/detail?id=8032, чтобы можно было отправлять неограниченное количество файлов. Но может потребоваться выпуск GAE или 2, прежде чем исправление будет развернуто.

person user431640    schedule 30.08.2012