swift - 具有标识符的后台 URLSession 已存在
问题描述
我有一个 S3Service,它是一个管理所有与 S3 相关的上传和下载的单例。当我上传第一张图片时,它工作正常,但如果我尝试连续上传一张图片,它会给我这个警告,并且永远不会调用完成块。
具有标识符的后台 URLSession
com.amazonaws.AWSS3TransferUtility.Identifier.TransferManager
已存在。
这就是我上传方法的样子:
if let data = image.jpegData(compressionQuality: 0.5) {
let transferUtility = AWSS3TransferUtility.s3TransferUtility(forKey: S3Service.TRANSFER_MANAGER_KEY)
transferUtility.uploadUsingMultiPart(data: data, bucket: EnvironmentUtils.getBucketName(), key: filename, contentType: "image/jpg", expression: nil, completionHandler: { task,error in
if let error = error {
print(error.localizedDescription)
} else {
print("Image upload success")
}
})
}
解决方案
对注册传输实用程序的调用AWSS3TransferUtility.register(with: serviceconfig, forKey: KEY)
导致了上述问题。有两件事需要牢记。
每个
AWSS3TransferUtility
应用程序会话应该只注册一次。然后我们可以AWSS3TransferUtility.S3TransferUtilityForKey
在需要的地方使用来获取实例。如果这些是针对应用程序内的不同用户的(例如注册),并且如果我们想
AWSS3TransferUtility
为每个用户保持独立,请AWSS3TransferUtility
使用不同的密钥(最好是同一用户的相同密钥)注册并使用该密钥进行查找。
推荐阅读
- python - MySQL 错误:无法连接。通过 for 循环添加数据时设置无效
- python - 如何制作不下载系统音乐的discord.py音乐?
- flutter - Flutter 类型“String”不是“FutureOr”类型的子类型
' , 无键响应 Json - mysql - 如何在 octoberCMS 查询中组合多个 and or 条件?
- php - httpd.conf 会覆盖 php.ini 吗?
- r - R tmap:在 tmap_mode("view") 中绘制的多边形,但只有第一个观察值 ("plot")
- r - 如何对R中的“系列”向量进行向量化操作
- azure-devops - 使用微软主机代理执行构建防御时出现运行问题?
- python - TypeError:__init__() 缺少 2 个必需的位置参数:“no_of_arrows”和“email”
- python-3.x - 将 h:m:s 转换为分钟格式