скачать с s3 ведро ajax php - PullRequest
       8

скачать с s3 ведро ajax php

0 голосов
/ 24 октября 2018

Привет всем, поэтому я перевожу свой сайт на AWS и s3 с помощью эластичного бобовЯ столкнулся с небольшой проблемой, потому что мои PHP-файлы хранятся по другому URL-адресу, чем S3 Bucket.

Например, URL моего веб-сайта похож на этот http://mysite.eu -west-1.elasticbeanstalk.com / test2.php , а URL-адрес моего сегмента s3 похож на этот https://s3.us -east-2.amazonaws.com / my-media-services / stockUploads / a288f1366c721c3cdcc8d417f866758d / test_184.mp4 , поскольку вы можете видеть, что они различаются, а атрибут загрузки HTML не поддерживается через URL-адреса перекрестного происхождения.

Возможно ли скачивать файлы через ajax, чтобы пользователю не приходилось переходить на другую страницу и, таким образом, иметь опыт, аналогичный атрибуту загрузки html5?Если так, как бы я это сделал?Я использую AWS PHP SDK

, он больше не работает, потому что он на s3 и является кросс-источником

<a href="https://s3.us-east-2.amazonaws.com/my-media-services/stockUploads/a288f1366c721c3cdcc8d417f866758d/test_184.mp4" download>download</a>

1 Ответ

0 голосов
/ 24 октября 2018

Вы должны включить cors на корзине s3:

  1. Выбрать корзину
  2. Выбрать вкладку разрешений
  3. Выбрать CORS
  4. Включить CORSконфигурация:

    <CORSConfiguration> <CORSRule> <AllowedOrigin>http://www.example1.com</AllowedOrigin> <AllowedMethod>GET</AllowedMethod> <AllowedHeader>*</AllowedHeader> <MaxAgeSeconds>3000</MaxAgeSeconds> </CORSRule> </CORSConfiguration>

    enter image description here

Для загрузки файла необходимо добавить метаданные к объекту (mp4):

enter image description here

Здесь работает:

<a id="download" href="https://s3.amazonaws.com/dev-repositorio-imagenes/colocolo/YODA_HD.mp4" download>Download</a>

Подробнее

Из серверного кода очень важно загрузить файл как:

тип содержимого: "application / octet-stream"

Как установить содержимоеPHP SDK типа

Надеюсь, что поможет вам!

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