gpt4 book ai didi

ios - 如何使用iOS sdk在运行时更改AWS的区域?

转载 作者:行者123 更新时间:2023-11-29 05:38:54 25 4
gpt4 key购买 nike

提前致谢。我计划在不同的国家发布一个应用程序,用户可以选择国家/地区,并根据选择使用各自的 AWS 区域。

首次登录工作正常,用户选择区域并且 S3 上传工作正常。

但是,如果用户注销,然后另一个用户使用不同区域登录,则 s3 上传会失败并出现超时错误。

这是代码:

guard let config = AWSServiceConfiguration(region: regionTypeByString(regionString: userData.getS3RegionBasedOnSelection()), credentialsProvider: self.awsAuthenticationProvider) else { return }
AWSS3TransferUtility.register(with: config, forKey: "Transfer")

AWSS3TransferUtility.s3TransferUtility(forKey: "Transfer")?.uploadFile(
fileUrl,
bucket: bucketPath,
key: key,
contentType: "application/octet-stream",
expression: expression,
completionHandler: { (task, error) in

if error != nil {
DDLogInfo("!!!!!! Error RAW: \(String(describing: error))")
DDLogInfo("!!!!!! Error Code: \(error!.code)")
DDLogInfo("!!!!!! Error Description: \(error!.localizedDescription)")
}
})

更改/切换 s3 区域的正确方法是什么?

最佳答案

为每个区域创建一个配置并在各自的 key 下注册它。在初始化 AWSS3 时执行相同的操作。

例如:

区域1:

let config = AWSServiceConfiguration(region: .USWest1, credentialsProvider: getAwsAuthenticationProvider())
AWSS3.register(with: config, forKey: "USWest1")
AWSS3TransferUtility.register(with: config, forKey: "USWest1")
//--> later in code
let transferUtility = AWSS3TransferUtility.s3TransferUtility(forKey: "USWest1")
transferUtility.uploadFile ()

区域2:

let config = AWSServiceConfiguration(region: .USWest2, credentialsProvider: getAwsAuthenticationProvider())
AWSS3.register(with: config, forKey: "USWest2")
AWSS3TransferUtility.register(with: config, forKey: "USWest2")
//--> later in code
let transferUtility = AWSS3TransferUtility.s3TransferUtility(forKey: "USWest2")
transferUtility.uploadFile ()

关于ios - 如何使用iOS sdk在运行时更改AWS的区域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56757933/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com