0
我想用api將客戶簽名圖像發佈到amazon s3 bucket_type服務器...我指的是不同的教程...我沒有從任何教程中獲得足夠的信息...我嘗試使用以下代碼但我得到零結果...如何將圖像上傳到swift3中的亞馬遜桶?
funcUpload(service:String,imagedata:Data,completion:@escaping (_ result:NSDictionary?,_ error:AnyObject?) ->()){
let boundaryConstant = "----------V2y2HFg03eptjbaKO0j1"
let urlpath:String = "http:myurl" + service
let url:NSURL = NSURL(string:urlpath)!
let request = NSMutableURLRequest(url: url as URL)
request.httpMethod = "P0ST"
request.cachePolicy = NSURLRequest.CachePolicy.reloadIgnoringLocalCacheData
request.httpShouldHandleCookies = false
let contentType = "multipart/form-data; boundary=\(boundaryConstant)"
request.setValue(contentType, forHTTPHeaderField: "Content-Type"
let body = NSMutableData()
if imagedata != nil{
body.append("--\(boundaryConstant)\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Disposition: form-data; name=\"\("universalapparealproduct")\" ; filename=\"image.jpg\"\r\n".data(using: String.Encoding.utf8)!)
body.append("Content-Type: \("universalapparealproduct")\r\n\r\n".data(using: String.Encoding.utf8)!)
body.append(imagedata)
body.append("\r\n".data(using: String.Encoding.utf8)!)
}
body.append("--\(boundaryConstant)--\r\n".data(using: String.Encoding.utf8)!)
request.httpBody = body as Data
let config = URLSessionConfiguration.ephemeral
self.session = URLSession(configuration: config)
let task = session.dataTask(with: request as URLRequest) { (data, response, error) -> Void in
if let receivedData = data
{
do
{let resultDic = try JSONSerialization.jsonObject(with: receivedData, options: JSONSerialization.ReadingOptions.mutableContainers) as? NSDictionary
completion(resultDic!,nil)
}
catch let error
{
NSLog("\(error)")
}
}
else if let errorMessage = error
{
completion(nil,errorMessage as AnyObject?)
}
self.session.invalidateAndCancel()
}
task.resume()
}
}
請任何人都可以幫我解決這個問題。 在此先感謝。
hi..my url我正在使用我的應用程序的URL與服務作爲文件/ upoad和後端他們只使用「POST」方法 –
請求的主體是選擇圖像和bucket_type =「我的項目類型」所以我不明白我必須在請求正文中設置此bucket_type的位置 –
將圖像上傳到S3的常用方法是從後端服務器獲取預先登記的URL。此網址已包含存儲區和文件名以及您需要上傳的所有權限。使用這個url你可以直接上傳到s3而不需要通過你的後端去看http://docs.aws.amazon.com/AmazonS3/latest/dev/PresignedUrlUploadObject.html。如果這是你正在使用的那麼你應該遵循我給的指示。如果你將圖像上傳到你的服務器,而服務器又將它上傳到S3,那麼我不能幫你,因爲我不知道該服務器希望接收什麼。 –