Асинхронная загрузка файла на Amazon S3 с Django

is сравнивает местоположение памяти. Он используется для сравнения уровня объекта.

== будет сравнивать переменные в программе. Он используется для проверки на уровне ценности.

is проверяет эквивалентность уровня адреса

== проверяет эквивалентность уровня значения

33
задан 22 March 2009 в 02:29
поделиться

3 ответа

Я проявил другой подход к этой проблеме.

Мои модели имеют 2 поля файла, каждый использует стандартный бэкенд хранилища файлов, и другой использует s3 бэкенд хранилища файлов. То, когда пользователь загружает файл, это добирается, сохранило локально.

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

Поэтому, когда запрос прибывает для файла, я проверяю, чтобы видеть, использует ли объект модели s3 поле устройства хранения данных, раз так я отправляю перенаправление в корректный URL на s3, если не я отправляю перенаправление так, чтобы nginx мог служить файлу от диска.

Эта команда управления может, конечно, быть инициирована любым событием cronjob или что бы то ни было.

24
ответ дан 27 November 2019 в 16:33
поделиться

Вы могли разъединить процесс:

  • пользователь выбирает файл для загрузки и отправляет его на сервер. После этого он видит страницу "Thank you for uploading foofile.txt, it is now stored in our storage backend"
  • , Когда пользователи загрузили файл, он хранится временный каталог на Вашем сервере и, в случае необходимости, некоторые метаданные хранятся в Вашей базе данных.
  • фоновый процесс А на Вашем сервере тогда загружает файл на S3. Это было бы только возможный, если у Вас есть полный доступ к Вашему серверу, таким образом, можно создать некоторый "deamon" к к этому (или просто использовать cronjob).*
  • страница, которая отображена опросы асинхронно и отображает некоторый индикатор выполнения пользователю (или s простой "ожидает" сообщение. Это только было бы необходимо, если пользователь должен быть в состоянии "использовать" (поместите его в сообщение или что-то как этот), это непосредственно после загрузки.

[*: В случае, если у Вас есть только общий хостинг, Вы могли возможно создать некоторое решение, которое использует скрытый Iframe в пользовательском браузере для запуска сценария, который тогда загружает файл на S3]

6
ответ дан 27 November 2019 в 16:33
поделиться

Пользователи могут загружать файлы прямо в S3 из своего браузера, используя специальную форму (с зашифрованным документом политики в скрытом поле). Они будут перенаправлены обратно в ваше приложение после завершения загрузки.

Дополнительная информация здесь: http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1434

22
ответ дан 27 November 2019 в 16:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: