swift - 图像无法快速上传 S3 存储桶
问题描述
我正在使用 minio 来保存图像,因为我使用 AWSS3 Bucket,当将图像上传到 s3Bucket 时,它显示错误的 url。我用下面的代码上传图片,
let access = "minioadmin"
let secret = "minioadmin"
let credentials = AWSStaticCredentialsProvider(accessKey: access, secretKey: secret)
let configuration = AWSServiceConfiguration(region: AWSRegionType.USEast1,
endpoint: AWSEndpoint(region: .USEast1, service: .S3,
url: URL(string:"https://dev.chats.com:4333")),credentialsProvider: credentials)
AWSServiceManager.default().defaultServiceConfiguration = configuration
let data: Data = loadimage.pngData()!
let remoteName = generateRandomStringWithLength(length: 12)+"."+data.format
print("REMOTE NAME ",remoteName)
let s3BucketName = "iostesting"
let expression = AWSS3TransferUtilityUploadExpression()
expression.progressBlock = { (task, progress) in
DispatchQueue.main.async(execute: {
print("task")
})
}
var completionHandler: AWSS3TransferUtilityUploadCompletionHandlerBlock?
completionHandler = { (task, error) -> Void in
DispatchQueue.main.async(execute: {
// Do something e.g. Alert a user for transfer completion.
// On failed uploads, `error` contains the error object.
})
}
let transferUtility = AWSS3TransferUtility.default()
transferUtility.uploadData(data, bucket: s3BucketName, key: remoteName, contentType: "image/"+data.format, expression: expression, completionHandler: completionHandler).continueWith { (task) -> Any? in
if let error = task.error {
print("Error : \(error.localizedDescription)")
}
if task.result != nil {
print("task",task)
let url = AWSS3.default().configuration.endpoint.url
print(AWSS3.default().configuration.endpoint.url)
// print("printthevalues",AWSS3.default().configuration.endpoint.url)
let publicURL = url?.appendingPathComponent(s3BucketName).appendingPathComponent(remoteName)
if let absoluteString = publicURL?.absoluteString {
}
}
return nil
}
当我上传图片时它显示以下消息,我如何在 s3Bucket 中上传图片。
NSErrorFailingURLStringKey=https://iostesting.dev.chats.com:4333/tA9QI2bThUHo.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minioadmin%2F20210813%2Fus-east-1%2Fs3%2Faws4_request&X- Amz-Date=20210813T123658Z&X-Amz-Expires=2999&X-Amz-SignedHeaders=content-type%3Bhost&X-Amz-Signature=961fb2a1a1384789fac09d8c9d4602e8dc6b59e11f8268670db57339628ef10c,
解决方案
推荐阅读
- javascript - TestCafe - 如何检查在 Runner 类中运行的测试用例数量?
- javascript - 使用 CSS 的复杂响应式 HTML 布局
- c++ - 如何在输入新内容c ++之前删除文件中的所有内容
- objective-c - CGEventTapCreate 在 macOS Mojave 中返回 null
- swift - xmppStreamDidConnect 没有在“swift 框架”中被调用
- c# - 具有多个条件和组合的 LINQ 方法
- sql - 如何在 Informix 中更改用户名?
- python - Tkinter 帧相互干扰
- php - 从 Android 将图像上传到 Web 服务器
- c++ - SIGSEGV on Boost UDP socket close - tcache_get at malloc.c