gpt4 book ai didi

ios - iOS Swift 上的 AWSS3TransferUtilityErrorDomain Code=2 尝试上传图像/pdf 时

转载 作者:行者123 更新时间:2023-12-01 15:27:32 26 4
gpt4 key购买 nike

我正在尝试将 pdf 文件或图像文件上传到 AWSS3 存储桶,但出现 AWSS3TransferUtilityErrorDomain Code=2 错误。请注意,我已经检查了 区域 并且它是正确的。此外,我已经验证我使用了正确的 accessKey secretKey 我还访问了下面提到的链接,但没有运气:

  • (https://github.com/aws-amplify/aws-sdk-ios/issues/2553.)
  • (https://github.com/aws-amplify/aws-sdk-ios/issues/604)
  • (https://github.com/aws-amplify/aws-sdk-ios/issues/420)
  • (https://github.com/aws-amplify/aws-sdk-ios/issues/103)
  • (Upload image to S3 with Amazon Educate Starter Account)
  • (About permission in S3 file transfer)
  • (Swift iOS: Unable to Upload Image to AWS S3)
  • (AWSS3TransferUtilityErrorDomain Code=2 on ios)

  • 我上传文件的代码如下:
    let credentials = AWSStaticCredentialsProvider(accessKey: “accessKey” , secretKey: “secretKey”)
    let configuration = AWSServiceConfiguration(region: AWSRegionType.APSouth1 , credentialsProvider: credentials)
    AWSServiceManager.default().defaultServiceConfiguration = configuration
    let expression = AWSS3TransferUtilityUploadExpression()
    expression.progressBlock = { (task, progress) in
    DispatchQueue.main.async(execute: {
    // Update a progress bar
    print("Task: \(task)")
    print("Progress: \(progress)")
    })
    }
    var completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?
    completionHandler = { (task, error) -> Void in
    DispatchQueue.main.async(execute: {
    if let error = error {
    CommonLoader.hide()
    SCLAlertView().showError("Error", subTitle: error.localizedDescription)
    return
    }
    // Do stuff after success
    })
    }
    let transferUtility = AWSS3TransferUtility.default()
    // contentType —-> “image/jpeg” for images && “application/pdf” for pdf files
    transferUtility.uploadData(data, bucket: s3BucketName, key: remoteName, contentType: contentType, expression: expression, completionHandler: completionHandler).continueWith { (task) -> Any? in
    if let error = task.error {
    // error case
    }
    else {
    if !task.isFaulted && task.result != nil {
    // success case
    }
    }

    return nil

    }

    最佳答案

    经过大量搜索和阅读文档后,我能够解决此问题。
    就我而言,有两件奇怪的事情,一件在 上有相同的凭据和存储桶。安卓它正在工作。
    但是在 iOS 完全相同的代码在迪拜有效,但在巴基斯坦无效。
    我通过将区域添加到项目 info.plist 文件解决了这个问题,如下所述:

  • 请注意,在我的案例中,区域是 ap-south-1 但是你需要把它放在这里,你可以从Amazon S3 Endpoints查看区域然后在 info.plist 中找到要使用的相应区域值。希望这会帮助某人并节省时间。快乐编码。干杯!
  • <key>S3TransferUtility</key>
    <dict>
    <key>Default</key>
    <dict>
    <key>Region</key>
    <string>"ap-south-1"</string>
    </dict>
    </dict>

    关于ios - iOS Swift 上的 AWSS3TransferUtilityErrorDomain Code=2 尝试上传图像/pdf 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63091717/

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