我们有一个使用Amazon Web Services的应用程序。我们设计了这样的图像和视频(S3)被发送到East1地区,而图像和视频'元数据(DynamoDB)被发送到West2区域。 但我们无法让它从使用east1切换到west2。
当我们初始化我们的AWS时,我们有:
self.provider = [AWSCognitoCredentialsProvider credentialsWithRegionType:AWSRegionUSEast1
accountId:AWS_ACCOUNT_ID
identityPoolId:COGNITO_POOL_ID
unauthRoleArn:COGNITO_ROLE_UNAUTH
authRoleArn:COGNITO_ROLE_AUTH];
self.east1Configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSEast1
credentialsProvider:self.provider];
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = self.east1Configuration;
self.west2Configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSWest2
credentialsProvider:self.provider];
现在,当我们想要发送视频和图像元数据时,我们还尝试将serviceConfiguration设置为west:
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = self.west2Configuration;
但它没有用。它不会转向west2。 我希望我有意义,谢谢你。
答案 0 :(得分:1)
defaultServiceConfiguration
只能设置一次(只有分配的第一个配置才有效)。要在配置之间切换,您需要在- initWithConfiguration:
和AWSS3
而不是AWSDynamoDB
和+ defaultS3
上致电+ defaultDynamoDB
。
请注意,使用- initWithConfiguration:
时,您需要保留对服务客户端对象的强引用。对于+ defaultS3
和+ defaultDynamoDB
,SDK会维护强引用(这些是单例方法)。就像您正在创建配置对象@property
一样,您也可以创建服务客户端@property
。