gpt4 book ai didi

swift - 使用 swift 将视频上传到 S3 操作无法完成。 ( cocoa 错误260。)”

转载 作者:行者123 更新时间:2023-11-30 14:12:51 25 4
gpt4 key购买 nike

我正在尝试将视频文件上传到 Amazon S3我不断收到错误 260:

Error in uploading the video: Error Domain=NSCocoaErrorDomain Code=260 "The operation couldn’t be completed. (Cocoa error 260.)

我在某处读到亚马逊不支持 Assets 库 - 这是真的吗?如果是的话你有什么建议谢谢伊兰

func saveVideoToS3 () {

    var uploadRequest: AWSS3TransferManagerUploadRequest = AWSS3TransferManagerUploadRequest()

uploadRequest.bucket = "BucketName"
uploadRequest.key = "KeyText"

//Move video file to the application folder so it can be read

var savedVideoURLToBeUsed = NSUserDefaults.standardUserDefaults().objectForKey("ThisIsTheVideoIWantToUse") as! String
println("Video saved in Store: \(savedVideoURLToBeUsed)")

var url: NSURL = NSURL(fileURLWithPath: savedVideoURLToBeUsed)!

uploadRequest.body = url
//uploadRequest.body = NSURL(fileURLWithPath: "file:///\(url)")

println("URL: \(url)")

let transferManager: AWSS3TransferManager = AWSS3TransferManager.defaultS3TransferManager()


transferManager.upload(uploadRequest).continueWithExecutor(AWSExecutor.mainThreadExecutor(), withBlock: { (AWSTask) -> AnyObject! in

//Handle errors
if AWSTask.error != nil {

println("Error in uploading the video: \(AWSTask.error)")

if AWSTask.error.code == 1001 {

self.saveVideoToS3()
}
// Retrive information important for later downloading
} else {
println("Video upload successful..")
var uploadResult: AnyObject! = AWSTask.result
println("Upload result: \(uploadResult)")

//Delete file from the application folder

}
return nil

})


}

最佳答案

Cocoa 错误 260 是一个 NSFileReadNoSuchFileError,这意味着您指定的路径无效(文件不在您所说的位置),因此它可能与 S3 本身无关。我想到了三件事:

  • 将 key 保存到用户设置时未使用 .synchronize()
  • 您的文件网址包含无效字符
  • 您没有正确地将文件写入文件系统

iOS8 重大变化

另请注意,从 iOS8 开始,由于应用程序与其分配的沙箱的工作方式发生了变化,您无法将绝对 URL 保存到文件中,因为下次打开应用程序时,它会有所不同。

Beginning in iOS 8, the Documents and Library directories are no longer siblings of your application's bundle.

我正在使用我编写的两个快速便捷函数来从缓存目录获取文件:

func cachePathWithFileName(fileName : String) -> String {

let cacheDirectoryPath = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
return cacheDirectoryPath.stringByAppendingPathComponent(fileName)
}

和文档目录:

func documentsPathWithFileName(fileName : String) -> String {

let documentsDirectoryPath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)[0] as! String
return documentsDirectoryPath.stringByAppendingPathComponent(fileName)
}

希望其中一些技巧能有所帮助!

关于swift - 使用 swift 将视频上传到 S3 操作无法完成。 ( cocoa 错误260。)”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31563147/

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