Интеграция с Amazon S3 - PullRequest
       6

Интеграция с Amazon S3

1 голос
/ 09 июля 2010

Amazon Integration

У меня есть собственная CMS, в которой есть файловый менеджер.Многие файлы и форматы, которые могут создавать люди, хранятся локально в базе данных.Это тривиальные примеры, такие как CSS-файлы, базовый контент и т. Д.

Файловый менеджер может делать все то, что делает docs.google.com.Я фактически основал всю методологию и дизайн вокруг браузера Google Docs.

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

У меня есть несколько вопросов по логистике.

Все мои файлы и иерархическая структура хранятся в моей таблице assets и folders в моей базе данных mysql.Если я добавлю Amazon S3, файлы будут загружены в Amazon, и я хочу знать, как мне их интегрировать.

Я могу сделать одну из двух вещей.

1.Каждый раз посещая Amazon

Либо: всякий раз, когда пользователь просматривает какую-либо конкретную папку, мой скрипт также может отправиться в Amazon и делать что-то вроде:

$s3->listObjects();

Затем я могу объединить результаты моегозапрос к базе данных с результатами.Я мог бы даже кэшировать, чтобы предотвратить некоторые проблемы с производительностью.

2.Каждый раз заходить в мою базу данных локально.

В качестве альтернативы, поскольку я следую этой структуре для загрузки: Клиент -> Сервер -> Amazon, мне нужно обработать файлы.Это означает, что я могу хранить много деталей в моей базе данных.Там будет очень мало необходимости идти в Amazon, чтобы перечислить структуру, потому что я могу посмотреть локально.


Какой вариант вы считаете лучшим?Я думаю второй вариант.Это имеет несколько преимуществ.

Преимущества базы данных

  • Я не запрашиваю Amazon постоянно.(В результате получается дешевле, так как я думаю, что вы должны платить за использование API на 1000 запросов).
  • Это будет быстрее
  • Мне не нужно объединять структуру

База данных Минусы

  • Мне нужно убедиться, что моя версия базы данных является точной копией Amazon.Может быть трудно ??
  • Мне нужно создать syncronise скрипт.Это не должно быть слишком сложно?

1 Ответ

1 голос
/ 09 июля 2010

У меня довольно большой опыт использования Amazon S3 для хранения файлов для веб-сайта, и вы определенно захотите пойти по пути к базе данных.

S3 - это способ замедлять запросы постоянно и по мере того, как выупомянул, что у вас будут дополнительные расходы (пусть и небольшие).Скорость становится все больше и больше проблемой, чем больше файлов вы сохранили в корзине, так как listObjects () возвращает только 1000 за раз.Проблемы с производительностью легко увидеть, просто используя любой из инструментов S3 (например, Bucket Explorer , Cloudberry или даже собственные инструменты Amazons ) для просмотра корзиныс большим количеством файлов.

Дополнительные усилия, необходимые для обеспечения синхронизации вашей базы данных с S3, того стоят.

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