我一直在环顾四周,发现没有最近的答案可以解决我从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完成此操作?
谢谢。
答案 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。