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之间切换,需要在AWSS3AWSDynamoDB上调用- initWithConfiguration:而不是+ defaultS3+ defaultDynamoDB

请注意,当使用- initWithConfiguration: ,您需要保留对服务客户端对象的强引用。 对于+ defaultS3+ defaultDynamoDB ,SDK维护强引用(这些是单例方法)。 就像你正在使configuration对象@property ,你也可以使服务客户端@property成为可能。