AWS交换区域从East1到West2
我们有一个使用Amazon Web Services的应用程序。 我们devise了图像和video(S3)发送到East1地区,而图像和video的元数据(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];
现在,当我们想发送video和图像元数据时,我们也尝试将serviceConfiguration设置为西:
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = self.west2Configuration;
但它不工作。 它不会切换到west2。 我希望我有道理,谢谢。
defaultServiceConfiguration
只能设置一次(只有分配的第一个configuration有效)。 为了在configuration之间切换,需要在AWSS3
和AWSDynamoDB
上调用- initWithConfiguration:
而不是+ defaultS3
和+ defaultDynamoDB
。
请注意,当使用- initWithConfiguration:
,您需要保留对服务客户端对象的强引用。 对于+ defaultS3
和+ defaultDynamoDB
,SDK维护强引用(这些是单例方法)。 就像你正在使configuration对象@property
,你也可以使服务客户端@property
成为可能。