swift - 使用 Amplify 检查文件是否存在于 AWS S3 存储中
问题描述
我正在使用带有 Amplify 的 AWS S3 存储,为了避免多次上传同一个文件,我想检查该文件是否已经存在。
目前通过 Amplify 获取下载 url,但如果文件不存在,它也会生成一个 url。我希望它返回一个错误:
_ = Amplify.Storage.getURL(key: "myKey") { event in
switch event {
case let .success(url):
print("Completed: \(url)")
case let .failure(storageError):
print("Failed: \(storageError.errorDescription). \(storageError.recoverySuggestion)")
}
}
有没有其他方法可以检查文件是否存在于放大中?
当然不用下载。重点是节省流量。
解决方案
看起来您可以执行与Amplify.Storage.list
此处所示类似的操作https://docs.amplify.aws/lib/storage/list/q/platform/ios
_ = Amplify.Storage.list { event in
switch event {
case .success(let listResult):
let keys = listResult.items.map { $0.key }
if !keys.contains("myKey") {
// upload unique file
}
case .failure(let error):
print("Failed: \(error.errorDescription).")
}
}
推荐阅读
- javascript - 为什么这行 JavaScript 显示在错误的位置?
- c - 通过向字符串添加 char 来填充字符串
- python - 在 python 中使用 Mapreduce 执行特定任务
- javascript - Jest - 对命名空间文件进行单元测试
- python - 安装 pyTorch / Torch
- pandas - 有条件地在两个值之间分配随机数
- javascript - 依赖于 httprequest 的 ag-grid 数据有时不会加载表
- meteor - 更新 Meteor 版本时出错
- docker - 找不到:NGINX 入口
- swiftui - UIKit for SwiftUI 中 applicationDidReceiveMemoryWarning 的替代方法是什么?