2017-02-21 24 views
1

Я переношу веб-приложение PHP, которое локально хранит изображения на AWS S3, и оно не может попасть в окно обслуживания.
Изображения S3 будут общедоступными.Перенос из локальных файлов в AWS S3 в PHP

Это шаги, которые я отслеживаю:

  1. Реализовать S3 апи поэтому новые снимки сохраняются в S3 и нет никаких более новых файлов, сохраненных локально.
  2. Рефакторинг изображений, чтобы показать местные и s3 фотографии, последние будут показаны с использованием общедоступных URL-адресов.
  3. Добавьте флаг базы данных, чтобы определить, хранится ли это изображение локально или на S3.
  4. Перенос локальных файлов на S3 с использованием AWS CLI. Всего почти сто тысяч снимков, я намерен сделать это одним клиентом, чтобы избежать тайм-аута.
  5. Проблема: После миграции я могу получить эти объекты на S3, но у меня нет их общего URL-адреса, хранящегося в моей базе данных.
  6. Запуск сценария через каждого клиента, извлечение этих записей базы данных, не имеющих общедоступного URL-адреса, выборки этих URL-адресов на S3 и обновление их записей базы данных URL-адресами и изменение его флага, чтобы указать, что теперь он хранится при s3.

Есть ли лучший способ?

ответ

0

публичный URL S3 объекта не меняется, так что я жёстко его.

1

Является ли ваша база данных общедоступной или если ее экземпляр RDS, вы можете создать функцию Lambda для вставки/обновления записи в базу данных после загрузки объекта.

Подобно тому, что объясняется в следующем tutorial

При загрузке объекта s3 добавить user-defined metadata атрибуты, чтобы указать первичный ключ базы данных (может быть зашифрована).

После того, как объект будет загружен в функции s3 лямбда будет срабатывать с payload, содержащий всю информацию, необходимую для конкатенации объекта s3 URL

+0

Как это даст мне общедоступный URL-адрес для исходных объектов? –

+1

Извините, я разработал свой ответ, чтобы объяснить это лучше –

 Смежные вопросы

  • Нет связанных вопросов^_^