Amazon S3 POST, событие когда сделано? - PullRequest
6 голосов
/ 28 февраля 2011

Я использую Amazon S3 с простым проектом, когда пользователь загружает файл, я сначала использую XMLHTTPRequest для отправки подробностей в мою базу данных, а затем запускаю форму POST, которая загружает файл прямо в S3.

Что я не могу понять, так это то, как определить, когда загрузка завершена, чтобы я мог корректно обновить отображение (сейчас я жульничаю и просто обновляю отображение, как только оно сохранено в базе данных, вы можете Едва сказать, для небольших загрузок, но, очевидно, проблема в долгосрочной перспективе.)

Сервер S3, по-видимому, «отменяет навигацию» после завершения загрузки, поэтому страница не перезагружается - есть ли какие-либо события, которые я могу использовать, чтобы определить, когда загрузка завершена?

Спасибо

РЕДАКТИРОВАТЬ: я использую код формы отсюда http://s3.amazonaws.com/doc/s3-example-code/post/post_sample.html только что добавил отправку в форму, которая запускает XMLHTTPRequest на мой собственный сервер, прежде чем форма будет опубликована в Amazon.

Ответы [ 2 ]

24 голосов
/ 09 марта 2011

Amazon S3 перенаправит на URL-адрес, указанный в поле success_action_redirect, или, если он не указан, возвращает пустой документ с кодом состояния, указанным в success_action_status.

После завершения процедуры POST пользователь перенаправляется в местоположение, указанное вами в поле success_action_redirect. Если Amazon S3 не может интерпретировать URL-адрес, он игнорирует поле success_action_redirect.

Если success_action_redirect не указан, Amazon S3 возвращает пустой тип документа, указанный в поле success_action_status.

В случае сбоя POST Amazon S3 отображает ошибку и не обеспечивает перенаправление.

Подробнее см. В документах AWS .

1 голос
/ 02 марта 2011

Amazon S3 не будет инициировать какие-либо события, но ваш код XMLHTTPRequest должен иметь возможность инициировать обратный вызов, когда S3 возвращает код состояния HTTP 200.

Если S3 не возвращает успешный код ответа, вполне возможно, что S3 не знает, что ваша загрузка завершена. Вы отправляете заголовок Content-Length как часть вашего запроса?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...