使用AWS SDK v2(iOS)连接到S3

时间:2014-08-12 05:54:56

标签: ios amazon-web-services amazon-s3

我一直在环顾四周,发现没有最近的答案可以解决我从iPhone应用程序上传和下载图片时遇到的问题。

我使用AWS SDK v2,从我从S3示例转换代码中读取和看到的内容,我需要先使用AWSCognitoCredentialsProvider开始。

AWSCognitoCredentialsProvider *credentialsProvider = [AWSCognitoCredentialsProvider
                                                          credentialsWithRegionType:AWSRegionAPNortheast1
                                                          accountId:AWSAccountID
                                                          identityPoolId:CognitoPoolID
                                                          unauthRoleArn:CognitoRoleUnauth
                                                      authRoleArn:nil];

但我唯一的信息是:访问密钥,密钥,存储桶名称和目标目录

我读过的相关链接是How do I download a file from S3 to an iPhone application?

但即使使用AWS SDK框架,代码也无法编译,并且项目中安装了相关的框架。

如何仅使用AWS SDK v2完成此操作?

谢谢。

3 个答案:

答案 0 :(得分:14)

您也可以使用Cognito废弃并使用访问密钥/密钥:

AWSStaticCredentialsProvider *credentialsProvider = [AWSStaticCredentialsProvider credentialsWithAccessKey:ACCESS_KEY_ID secretKey:SECRET_KEY];
AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSWest2
                                                                      credentialsProvider:credentialsProvider];

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

确保使用您的存储桶实际所在的区域。

答案 1 :(得分:8)

为方便起见,我将版本保留在Swift中

let credentialsProvider = AWSStaticCredentialsProvider(accessKey:"YOUR_ACCESS_KEY", secretKey: "YOUR_SECRET_KEY")
let defaultServiceConfiguration = AWSServiceConfiguration(region: AWSRegionType.EUWest1, credentialsProvider: credentialsProvider)
defaultServiceConfiguration.maxRetryCount = 5
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = defaultServiceConfiguration
let defaultS3 = AWSS3.defaultS3()

...

答案 2 :(得分:2)

我建议您按照自述文件运行S3TransferManager sample app。在Amazon Cognito console中,您可以获得实例化凭证提供程序所需的信息。

此外,目前仅AWSRegionUSEast1提供Amazon Cognito Identity