【问题标题】:How to change the region of AWS at runtime using iOS sdk?如何使用 iOS sdk 在运行时更改 AWS 的区域?
【发布时间】:2019-11-07 12:31:06
【问题描述】:

提前致谢。 我打算在不同的国家发布一个应用程序, 用户将可以选择国家/地区,并根据选择使用他们各自的 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 区域的正确方法是什么?

【问题讨论】:

    标签: ios amazon-web-services amazon-s3 aws-sdk


    【解决方案1】:

    为每个区域创建一个配置并将其注册到相应的键下。 并在初始化 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 ()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-25
      • 2017-12-15
      • 1970-01-01
      • 1970-01-01
      • 2021-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多