Как я могу предоставить конечную точку S3 клиентам для загрузки файлов - PullRequest
0 голосов
/ 26 апреля 2020

Я выполняю проект, в котором мои клиенты загружают файл данных на свой сервер через SFTP. Теперь необходимо перенести мое приложение в облако. Итак, я хочу, чтобы эти клиенты загружали эти файлы данных на мой S3.

С точки зрения дизайна и безопасности, каков подход или способы, с помощью которых я могу попросить своих клиентов загрузить эти файлы на S3? Должен ли я предоставить API приложения (которое будет загружать файлы на S3) моим клиентам или есть какой-нибудь другой лучший и правильный способ добиться этого?

РЕДАКТИРОВАТЬ: я буду ежедневно загружать около 200 файлов с каждым файлом размер около 2-3 МБ. Эти загрузки файлов не могут быть запланированы, они основаны на событиях. Наш клиент SFTP-файлы, как и когда они нуждаются в некоторой обработке этих файлов с нашей стороны.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2020

Если ваши клиенты уже используют SFTP, вам следует просто перенести их на управляемую службу SFTP на AWS, которая является частью AWS Семейство передачи .

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

1 голос
/ 26 апреля 2020

Если ваша служба выполняет только загрузку на S3, используйте «Пользователи / политики IAM», чтобы предоставить своим клиентам доступ к корзине s3, поскольку ваша служба будет действовать только как прокси-сервер и добавит дополнительное обслуживание и затраты. Если данные, которые вы храните на S3, очень важны, я бы посоветовал вам взглянуть на это https://docs.aws.amazon.com/AmazonS3/latest/dev/security-best-practices.html#security -best-практика-предотвращение

Однако могут быть случаи, когда вы хочу выставить конечную точку, скажем -

Клиенту требуется только функциональность для загрузки файла и никаких других операций. Здесь реализация абстрагируется от клиента, и вы можете внутренне использовать или мигрировать в любое другое хранилище данных (будь то s3), не затрагивая клиентов. Но учтите это, только если это возможно.

...