如何在没有Cognito的情况下从iOS上传到AWS S3?

smi*_*ham 4 amazon-s3 amazon-web-services ios

我的目标:

使用最简单的代码将照片从iOS上传到常见的AWS S3存储桶


我试过的:


最佳实践假设:

我认为Cognito是我完成所有阅读后设置图像上传的默认方式.但是,我这样做有两个问题:

  1. 对于我应该只需要传递图像,桶,密钥和秘密的东西,这似乎过于复杂.
  2. 我之前已经通过一个服务器完成了这个,只有密钥和秘密,所以我没有看到使用或支付Cognito的理由.

我的问题:

  • 有没有办法在不使用Cognito的情况下从iOS上传到AWS S3?
  • 如果我上述任何假设或问题不是实现目标的最佳方式,那么最简单的方法是什么?

Kar*_*hik 8

Cognito Identity是一项免费服务,因此您无需支付任何费用.此外,您真的不应该在您的应用程序中使用硬编码凭据,因为它可以很容易地反编译和检索,这不是服务器端代码的情况.

对于iOS SDK,您可以使用它AWSStaticCredentialsProvider作为向任何服务客户端提供静态凭据的方式.

AWSStaticCredentialsProvider *credentialsProvider = [AWSStaticCredentialsProvider credentialsWithAccessKey:@"YourAccessKey" secretKey:@"YourSecretKey"];
Run Code Online (Sandbox Code Playgroud)

你真的不应该在生产应用程序中这样做.