2017-02-23 7 views
0

何らかの理由で、S3へのアップロードがうまく動作しないのに対して、私はダウンロード機能をうまく動作させることができました。 uploadFile FUNCXCode Swift AWS S3アップロードが動作しない

@IBAction(_差出人:UIButton)ここ

は私のアップロードのコードである{

let CognitoRegionType = AWSRegionType.USWest2 // e.g. AWSRegionType.USEast1 
    let CognitoIdentityPoolId = "us-west-2:3c00122a-866c-4ce4-9dd3-ee23c16e58f3" 

    let DefaultServiceRegionType = AWSRegionType.USWest1 // e.g. AWSRegionType.USEast1 
    let S3BucketName = "snappcastphotos" 


    let credentialsProvider = AWSCognitoCredentialsProvider(regionType:CognitoRegionType, identityPoolId: CognitoIdentityPoolId) 
    let configuration = AWSServiceConfiguration(region: DefaultServiceRegionType , credentialsProvider:credentialsProvider) 
    AWSServiceManager.default().defaultServiceConfiguration = configuration 


    let uploadRequest = AWSS3TransferManagerUploadRequest() 
    uploadRequest?.bucket = S3BucketName 
    uploadRequest?.key = "bingo" 
    uploadRequest?.body = URL(fileURLWithPath: "https://stackoverflow.com/users/rhom/desktop/test.rtf") 

    let transferManager = AWSS3TransferManager.default() 
    transferManager.upload(uploadRequest!).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in 

     if let error = task.error as? NSError { 
      if error.domain == AWSS3TransferManagerErrorDomain, let code = AWSS3TransferManagerErrorType(rawValue: error.code) { 
       switch code { 
       case .cancelled, .paused: 
        break 
       default: 
        print("Error uploading: \(uploadRequest?.key) Error: \(error)") 
       } 
      } else { 
       print("Error uploading: \(uploadRequest?.key) Error: \(error)") 
      } 
      return nil 
     } 

     let uploadOutput = task.result 
     print("Upload complete for: \(uploadRequest?.key)") 
     return nil 
    }) 
} 

と、このコードは、次のエラー/出力生産:

エラーアップロードを:オプション( "bingo")Error:Error Domain = com.amazonaws.AWSS3ErrorDomainコード= 0 "(null)" UserInfo = {HostId = KAsbvIqiY67dr/64f3uvZPB1Lr5Vj7eNNV198DLai/RG/tA + v3To8CBbnbFSM00V2COZnzebx/M =、メッセージ=リクエストボディが予期せず終了しました。 = IncompleteBody、RequestId = A95236E53A1B8FE8}

誰でもアイデアはありますか?私はCognitoとS3を使用してダウンロードがうまくいかない理由を知ることはできませんが、アップロードがうまくいかない...

答えて

0

これは認証エラーのようです。この特定のバケットに対する書き込み権限を持っているかどうかを確認し、与えられたパスが正しいかどうかを確認します。まるで動作しない不一致があるかのようです。

+0

はい私はCognitoとS3のバケットで読み取り/書き込みを持っていることを確認するアクセス許可をチェック... – user3424472

0
私は最終的に

それは私が私が始めるために古いチュートリアルを次れたようにAWSフレームワークの古いバージョンをインストールしていた...と指定Cocoapodsを使用してフレームワークをロードしていたことが判明:)この問題を考え出し

IOS 8.0用のpodfileでは、私は今IOS 10.0です!!!! podfileをバージョン10.0に変更すると問題は解決しました。

私は10.0でCocoapods、正しいpodfileを使用してAWSのフレームワークを再インストールしてしまった...しかし、これは持っている人を助け、私はちょうどポッドを更新する方法があると思いますが、私はそれ以降の

希望になりますこの問題もあまりにも:)

関連する問題