Как загрузить файл на S3 из GAE (ужасная история) - PullRequest
2 голосов
/ 13 декабря 2011

Я пытаюсь загрузить файл в amazon S3 из GAE.

Я попробовал официальный amazon sdk ( jetS3t , построенный поверх низкоуровневого sdk ), просто чтобы выяснить, что даже если вы можете заставить его работать локально, устанавливая разрешения на локальной JVM, он не поддерживается по причинам, связанным с шифрованием GAE, после его развертывания.

Тогда из отчаянияЯ обнаружил, что какая-то хорошая душа разветвила официальный низкоуровневый amazon sdk , чтобы он работал с GAE.Этот вид работает (хотя я вижу, что некоторые странные исключения NullPointer появляются здесь и там), и файл загружается ... но если размер файла превышает 5 МБ, я получаю сообщение об ошибке из API:

com.google.apphosting.api.ApiProxy$RequestTooLargeException: The request to API call urlfetch.Fetch() was too large

Я не совсем понимаю это, поскольку текущие ограничения GAE кажутся 32 МБ при загрузке файла и 1 МБ при запросе / ответе, в то время как моя проблема возникает только тогда, когда размер файла составляет около 5 МБ или больше.

Я думаю, что моя единственная альтернатива - jclouds , но у меня возникают проблемы с поиском примеров загрузки файлов на S3 с использованием библиотеки BlobStore.

Есть ли у кого-нибудь опыт / примеры, которыми можно поделитьсязагрузки файла S3 с jClouds?И могу ли я понести такую ​​же urlfetch.Fetch() was too large ошибку?

Любая помощь приветствуется.

Ответы [ 2 ]

3 голосов
/ 14 декабря 2011

Запросы URLFetch ограничены 5 МБ, как указано здесь .Единственные решения, которые будут работать, - это те, которые включают разбиение большой полезной нагрузки на более мелкие куски.К счастью, S3 предоставляет API многоэтапной загрузки .

1 голос
/ 14 декабря 2011

В примечаниях к выпуску для 1.5.0 я читаю В ответ на популярный спрос размеры запросов и ответов HTTP были увеличены до 32 МБ. Итак, запрос и ответ, Выборка URL не упоминается.

Действительно, если посмотреть на документацию по выборке URL , там написано, что это максимум 5 МБ.

...