ios - 返回 ENOTCONN 错误
<p><p>我正在尝试将图像上传到 Aws S3 存储桶。我尝试按照教程进行操作,但收到一条错误消息:“由于协议(protocol)尚未设置而返回 ENOTCONN。”我是 swift 新手,我无法理解为什么还会发生错误。我的 S3 上传代码如下:</p>
<pre><code> let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.body = url!
uploadRequest?.key = remoteFileName
uploadRequest?.bucket = S3BucketName
uploadRequest?.contentType = "image/" + ext
let transferManager = AWSS3TransferManager.default()
// Perform Upload
transferManager.upload(uploadRequest!).continueWith(block: { (task:AWSTask<AnyObject>) -> AnyObject! in
if let error = task.error{
print("error \(error.localizedDescription)")
}
if task.result != nil {
let url = AWSS3.default().configuration.endpoint.url
let publicURL = url?.appendingPathComponent((uploadRequest?.bucket!)!).appendingPathComponent((uploadRequest?.key!)!)
print("Uploaded to:\(publicURL)")
}
return nil
})
</code></pre>
<p>我的 S3 位于 ap-south-1 中,认知池 ID 位于 us-west-2 中。我想这就是问题所在。有没有办法解决这个问题,而无需在 us-west-2 中创建另一个存储桶。
我收到以下错误:</p>
<p> <a href="/image/fNdtv.png" rel="noreferrer noopener nofollow"><img src="/image/fNdtv.png" alt="error"/></a> </p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>如果没有为身份验证设置 cognito 池,您希望存储桶策略有点像这样:注意 <strong>Principal</strong> 和 <strong>Action</strong> 值 <a href="/image/gHflw.png" rel="noreferrer noopener nofollow"><img src="/image/gHflw.png" alt="Bucket Policy"/></a> </p>
<p>另外,您使用 <code>AWSS3TransferManagerUploadRequest</code> 有什么特别的原因吗?如果该政策无法解决您的问题,您可以将以下代码用于 <code>AWSS3TransferUtilityUploadExpression</code>,该代码以 block 的形式异步发送您的数据。</p>
<pre><code> let expression = AWSS3TransferUtilityUploadExpression()
expression.progressBlock = progressBlock
transferUtility.uploadData(UIImagePNGRepresentation(imageNew!)!,
bucket: "bucket-name",
key: (imgName.removeWhitespace()),
contentType: "image/png",
expression: expression,
completionHandler: completionHandler).continueWith { (task) -> AnyObject! in
if let error = task.error {
print("Error: \(error.localizedDescription)")
}
if let _ = task.result {
print("Upload Starting!")
// Do something with uploadTask.
}
return nil;
}
</code></pre></p>
<p style="font-size: 20px;">关于ios - 返回 ENOTCONN 错误,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/47426902/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/47426902/
</a>
</p>
页:
[1]