Ios 将文件上载到AWS S3存储桶

Ios 将文件上载到AWS S3存储桶,ios,swift,amazon-s3,aws-sdk,Ios,Swift,Amazon S3,Aws Sdk,我在美国西部即北加利福尼亚州安装了S3桶 我的池ID以“us-east-1:****”开头 我有以下代码来上传我的名为AWS_bucket_NAME的bucket上的文件 let credentialProvider = AWSCognitoCredentialsProvider(regionType: .USWest1, identityPoolId: AWS_IDENTITY_POOL_ID) let configuration = AWSServiceConfiguration(r

我在美国西部即北加利福尼亚州安装了S3桶

我的池ID以“us-east-1:****”开头

我有以下代码来上传我的名为AWS_bucket_NAME的bucket上的文件

let credentialProvider = AWSCognitoCredentialsProvider(regionType: .USWest1, identityPoolId: AWS_IDENTITY_POOL_ID)
    let configuration = AWSServiceConfiguration(region: .USWest1, credentialsProvider: credentialProvider)
    AWSServiceManager.default().defaultServiceConfiguration = configuration
    let uploadingFileURL = videoURL
    let uploadRequest = AWSS3TransferManagerUploadRequest()
    uploadRequest?.bucket = AWS_BUCKET_NAME
    uploadRequest?.key = fileName
    uploadRequest?.body = uploadingFileURL
    uploadRequest?.contentType = "video/mp4"

    let transferManager = AWSS3TransferManager.default()
    transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread())
    { (task) -> Any? in
        if task.error == nil
        {
            return nil
        }
        else
        {
            print("Error: \(String(describing: task.error))")
        }
        return nil
    }
大多数情况下,它成功地上传了视频文件。但有时它会像吼叫一样发出错误

Error Domain=NSURERRORDOMAIN Code=-1003“找不到具有指定主机名的服务器。”,NSErrorFailingURLStringKey=,NSErrorFailingURLKey=,kCFStreamErrorDomainKey=12,_kCFStreamErrorCodeKey=8,NSLocalizedDescription=找不到具有指定主机名的服务器。}

现在,如果我将AWSCOgnitoRedentialsProvider中的regionType更改为USEast1或其他,然后重试,那么它会再次给我相同的错误,但在此之后,如果我再次设置“USWest1”区域,那么它将再次工作。它将继续成功工作5-6次,有时甚至更多。但过了一段时间,它又产生了同样的错误

还有一件事,使用相同的池id和区域,它在android中运行良好。仅在iOS中面对此问题


提前谢谢。

我终于找到了解决方案。这不是正确的答案,但它可能会帮助其他人面临这样的问题

let credentialProvider = AWSCognitoCredentialsProvider(regionType: .USEast1, identityPoolId: AWS_IDENTITY_POOL_ID)
    let configuration = AWSServiceConfiguration(region: .USWest1, credentialsProvider: credentialProvider)
在他的评论之后,我通过一个接一个地改变区域进行了检查。最后,我正在使用.USEast1创建
AWSCognitoCredentialsProvider
,并使用.USWest1配置
AWSServiceConfiguration
,它现在正在工作


我不知道背后的原因,但可能我们需要配置
AWSServiceConfiguration
,使用我们正在使用的bucket区域。

在我看来可能与DNS解析相关,或者AWS有问题。这种情况发生多久了?关于它,有什么可以持续复制的吗?这是因为我已经实现了。i、 大约5天。这是不一致的。这是一个随机问题。你能试着用不同的DNS服务器测试一下问题是否解决了吗?你试过3种不同的Wi-Fi、移动数据和局域网。仍然是相同的问题。这与DNS无关,@brandonscript。。。Cognito没有美国西部1。问题似乎是为什么这段代码试图访问一个不存在的端点,或者为什么它能工作。。。