我正在尝试按照“上传对象”下面列出的步骤进行操作:http : //docs.aws.amazon.com/mobile/sdkforios/developerguide/s3transfermanager.html
但是,我将其转换为Swift,因为这是我编写整个应用程序的内容。我想出了以下代码,但是当我运行它时,没有任何内容上传到我指定的存储桶中。不幸的是,我什至没有收到错误,这使故障排除变得很困难-您可以在下面看到我正在尝试将任何错误打印到控制台,但是myBFTask.error最终为空。同时myBFTask.result也为null。对于上下文,此代码全部在imagePickerController didFinishPickingMediaWithInfo内部。任何关于下一步寻找的技巧将不胜感激。
var pickedURL:NSURL = info[UIImagePickerControllerMediaURL] as NSURL
println("here's the url for the picked media: \(pickedURL)")
//make a timestamp variable to use in the key of the video I'm about to upload
let date:NSDate = NSDate()
var unixTimeStamp:NSTimeInterval = date.timeIntervalSince1970
var unixTimeStampString:String = String(format:"%f", unixTimeStamp)
println("this is my unix timestamp as a string: \(unixTimeStampString)")
var myTransferManagerRequest:AWSS3TransferManagerUploadRequest = AWSS3TransferManagerUploadRequest()
myTransferManagerRequest.bucket = "kikfli1.videolist"
myTransferManagerRequest.key = "\(self.fbid)_\(unixTimeStampString)"
myTransferManagerRequest.body = pickedURL
var myBFTask:BFTask = BFTask()
var myMainThreadBFExecutor:BFExecutor = BFExecutor.mainThreadExecutor()
var myTransferManager:AWSS3TransferManager = AWSS3TransferManager()
myTransferManager.upload(myTransferManagerRequest).continueWithExecutor(myMainThreadBFExecutor, withBlock: { (myBFTask) -> AnyObject! in
println("I'm inside the completion block")
if((myBFTask.result) != nil){
println("upload was successful?")
}else{
println("upload didn't seem to go through..")
var myError = myBFTask.error
println("error: \(myError)")
}
return nil
})
这是打印到我的控制台的内容:
用户选择了要提交的视频!
这是所选媒体的网址:file:xxxxxxxxxxxxxxx.MOV(显然是实际文件路径)
这是我的unix时间戳,作为字符串:1417506382.414219
我在完成区里面
上传似乎没有完成。
错误零
您没有传递AWSServiceConfiguration
给AWSS3TransferManager
,这是导致问题的原因。您需要更改以下行:
var myTransferManager:AWSS3TransferManager = AWSS3TransferManager()
像
var myTransferManager:AWSS3TransferManager = AWSS3TransferManager.defaultS3TransferManager()
另外,您需要预先将默认服务配置设置为默认服务管理器。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句