前提・実現したいこと
SwiftにおけるAWSS3との接続処理を行いたいです。
やりたいことは主に2つあります。
・bucket配下にあるjsonファイルを取得してパースしたい
・bucket配下のフォルダ一覧をtableViewで表示したい
現在のbucketの構成としては
bucket
- sample.json
- test(空のフォルダ)
となっております。
正直右も左もわからないので、公式のドキュメント通り進めましたが
エラーの解決方法がわからなくて質問させて頂きました。
恐れ入りますが宜しくお願い致します。
発生している問題・エラーメッセージ
2018-10-29 00:17:08.126421+0900 AWSS3Test[6526:2210734] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '`- init` is not a valid initializer. Use `+ defaultS3TransferManager` or `+ S3TransferManagerForKey:` instead.' *** First throw call stack: (0x184d22d8c 0x183edc5ec 0x102c0cb38 0x1024b8648 0x1024b70bc 0x1024b6bb0 0x1024b7ee8 0x18e93ae64 0x18e93aa50 0x18e92bce4 0x18e92ab18 0x18e9b862c 0x18e92e274 0x18e8fb5e0 0x18ef2bb1c 0x18e8fadd0 0x18e8fac6c 0x18e8f9afc 0x18f58f84c 0x18e8f91ec 0x18f374ac8 0x18f4c2bf8 0x18e8f8c0c 0x18e8f85a8 0x18e8f55e0 0x18e8f5330 0x187523470 0x18752bd6c 0x1037dd19c 0x1037e97cc 0x187557878 0x18755751c 0x187557ab8 0x184ccb404 0x184ccac2c 0x184cc879c 0x184be8da8 0x186bcd020 0x18ec05758 0x1024b98e4 0x184679fc0) libc++abi.dylib: terminating with uncaught exception of type NSException
該当のソースコード
Swift
1import UIKit 2import AWSS3 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 let transferManager = AWSS3TransferManager() 10 var completionHandler: AWSS3TransferUtilityDownloadCompletionHandlerBlock? 11 let downloadingFileURL = URL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent("sample.json") 12 if let downloadRequest = AWSS3TransferManagerDownloadRequest(){ 13 downloadRequest.bucket = "自分で作成したbucket名を入力してます" 14 downloadRequest.key = "sample.json" 15 downloadRequest.downloadingFileURL = downloadingFileURL 16 17 transferManager.download(downloadRequest).continueWith(executor: AWSExecutor.mainThread(), block: { (task:AWSTask<AnyObject>) -> Any? in 18 if let error = task.error as NSError? { 19 if error.domain == AWSS3TransferManagerErrorDomain, let code = AWSS3TransferManagerErrorType(rawValue: error.code) { 20 switch code { 21 case .cancelled, .paused: 22 break 23 default: 24 print("Error downloading: (downloadRequest.key) Error: (error)") 25 } 26 } else { 27 print("Error downloading: (downloadRequest.key) Error: (error)") 28 } 29 return nil 30 } 31 32 print("Download complete for: (downloadRequest.key)") 33 let downloadOutput = task.result 34 35 return nil 36 }) 37 } 38 } 39 40 override func didReceiveMemoryWarning() { 41 super.didReceiveMemoryWarning() 42 // Dispose of any resources that can be recreated. 43 } 44}
試したこと
こちらを参考に上記の実装を試してみました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。