0

I've found several options online to allow my customers to give me data that I want to eventually process. I want them to upload to S3. What is the best option? Ideally this would be done programmatically. With them to have the option to upload whenever they please.

  1. Give them a presigned URL every day that lasts X amount of time, but we I don't know when they'll upload

  2. Use AWS Transfer, but I can't find any specific article to give external users access

  3. Create a simple website using Cognito for them to upload, but this isn't programmatic

  4. Create a trust relationship from their AWS account to mine, but this requires their application to be running in AWS

  5. Something else I don't know about

This seems like a pretty common problem to solve, but the struggle is real.

Roka
  • 444
  • 5
  • 23
  • 1
    5. Create a Lambda or otherwise custom endpoint that authenticates the user, and creates a fairly short lived presigned URL that they call when they want to upload. – Anon Coward Apr 21 '22 at 00:18
  • With AWS Transfer, you can offer [SFTP](https://aws.amazon.com/about-aws/whats-new/2018/11/aws-transfer-for-sftp-fully-managed-sftp-for-s3/). There are various options for [authenticating users](https://docs.aws.amazon.com/transfer/latest/userguide/create-user.html). – jarmod Apr 21 '22 at 01:10
  • I wouldn't recommend 4. but just want to note that it does not require their app run in AWS, only that they have an AWS account with an IAM user or role. – jordanm Apr 21 '22 at 01:32

0 Answers0