Как реализовать пользовательские квоты хранилища, используя Amazon S3 в качестве хранилища, как в Dropbox
Очень нужны умные умы, чтобы помочь мне с этим. Я застрял! Я внедряю систему, где пользователям будет разрешено загружать видео и файлы на мой сайт. В настоящее время я предоставляю им доступ по FTP для их собственной учетной записи пользователя FTP, куда они загружают необходимые файлы. FTP на сервере Linux поддерживает пользовательские квоты.
Однако теперь мне нужно убрать свой протокол загрузки с протокола ftp и изучить систему загрузки файлов amazon s3 через http. FTP просто создает слишком много проблем с брандмауэрами, портами, активными, пассивными. Список можно продолжить.:) В то время как загрузка http s3 будет зависеть только от пользователя, который разрешит доступ в Интернет к настольному приложению, которое будет выполнять загрузку.
У меня есть все, чтобы нормально работать до такой степени, что мне нужно установить квоту для каждого пользователя. Как реализовать квоты хранения в системе, подобной Amazon s3, которая не поддерживает это? Я не могу предоставить неограниченный доступ своим пользователям, и я не хочу ставить свой сервер посередине, потому что это просто означает, что мой сервер должен будет получить файл, а затем загрузить его на сервер на s3, что можно сделать с помощью монтирования s3 как диск, но затем снова вернулись к загрузке через FTP на мои серверы на смонтированный диск S3.
Я хочу, чтобы мое приложение загружалось непосредственно на сервер s3, но поддерживало пользовательские квоты, загружая в папку psuedo amazon в 1 корзину. Каждый пользователь получит подпапку в корзине, в которую он загрузит.
Какова будет реализация / логика, чтобы сделать эту работу?
Нужно ли устанавливать другой сервер для наблюдения за пользователем, просматривая файлы в /keyname/, чтобы узнать, сколько памяти используется этим именем ключа, которое будет useraccount? Разве это не стоило бы много денег с точки зрения поддержания статуса использования каждого аккаунта в актуальном состоянии?
Помогите пожалуйста, мне нужна стратегия. Нечто похожее на реализацию сохранения на s3 в Dropbox, но с ограничениями на квоты для пользовательских загрузок.
2 ответа
Вы должны будете отслеживать квоту на своем собственном сервере.
Если у вас есть контроль над клиентом, вы можете потребовать, чтобы он отправил размер файла на ваш сервер до загрузки в amazon и отклонил его, если он превысит квоту.
Если вы этого не сделаете, вы можете разрешить загружать
Если вам нужно пользовательское хранилище, вам может подойти AWS WorkDocs. Создание Bucket для каждого пользователя не является альтернативой, так как количество Buckets, которое вы можете создать, очень ограничено.
Однако я не могу рассказать вам, как реализованы квоты.