0
Alamofireを使用しているiOSデバイスからの署名付きURLを使用してS3バケットに画像を送ることができます。要求タイムアウト。iOSリクエストのタイムアウト投稿済みのURL /アラモファイアでS3に画像を投稿
私は次のコードで事前に署名したURLの生成ノードのバックエンドがあります。
var aws = require('aws-sdk');
var config = require('../config');
const uuid = require('uuid');
aws.config.update({accessKeyId: config.accessKeyId, secretAccessKey: config.secretAccessKey});
exports.getSignedImageUploadURL = function(filetype, callback) {
var s3 = new aws.S3();
var filename = uuid.v4();
var params = {
Bucket: 'xxx',
Key: filename,
Expires: 4000,
ContentType: "image/jpeg"
};
s3.getSignedUrl('putObject', params, function(err, data) {
if (err) {
console.log(err);
callback(err, null);
} else {
callback(null, data);
}
});
}
をそして私は、次のオプションで正常にポストマンで画像を置くことができる:
しかし、私はAlamofireの要求でこれらの条件を複製しようとしているようです。私は現在、次のコードを使用しています:
RESPONSE JSON FAILURE: Error Domain=NSURLErrorDomain Code=-1001 "The request timed out."
UserInfo={NSUnderlyingError=0x7fee750cfc90 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=-2102, _kCFStreamErrorDomainKey=4}},
NSErrorFailingURLStringKey=https://xxx.s3.amazonaws.com/f01ab7e0-ecdc-4f19-93f0-4f1d89b2903c?AWSAccessKeyId=xxx&Content-Type=image%2Fjpeg&Expires=1468384920&Signature=xxx,
NSErrorFailingURLKey=https://xxx.s3.amazonaws.com/f01ab7e0-ecdc-4f19-93f0-4f1d89b2903c?AWSAccessKeyId=xxx&Content-Type=image%2Fjpeg&Expires=1468384920&Signature=xxx,
_kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=The request timed out.}
任意のアイデア:
Alamofire.upload(.PUT, postURL, headers: ["Content-Type": "image/jpeg"], multipartFormData: { multipartFormData in
if let image = image, imageData = UIImageJPEGRepresentation(image, 1.0) {
multipartFormData.appendBodyPart(data: imageData, name: "file", mimeType: "image/jpeg")
}
}, encodingCompletion: { encodingResult in
switch encodingResult {
case .Success(let upload, _, _):
upload.responseJSON { response in
print("RESPONSE JSON", response)
}
case .Failure(let encodingError):
print("ENCODING ERROR", encodingError)
}
}
)
は、次のエラーを取得するには?
EDIT:
私も同じエラーにこのコードを試してみた:
if let image = image, imageData = UIImageJPEGRepresentation(image, 1.0) {
Alamofire.upload(.PUT, postURL, headers: ["Content-Type": "image/jpeg"], data: imageData)
.response { (req, res, json, error) in
print(req, res, json, error)
completionHandler(success: false)
return
}
}