使用 Amplify 检查 AWS S3 存储中是否存在文件
Check if File exists in AWS S3 Storage with Amplify
我将 AWS S3 存储与 Amplify 结合使用,为了避免多次上传同一个文件,我想检查该文件是否已经存在。
目前通过 Amplify 下载 url,但如果文件不存在,它也会生成 url。我希望它 returns 是一个错误:
_ = 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 中?
当然不用下载了。
重点是省流量。
看起来您可以使用 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 { [=10=].key }
if !keys.contains("myKey") {
// upload unique file
}
case .failure(let error):
print("Failed: \(error.errorDescription).")
}
}
我将 AWS S3 存储与 Amplify 结合使用,为了避免多次上传同一个文件,我想检查该文件是否已经存在。
目前通过 Amplify 下载 url,但如果文件不存在,它也会生成 url。我希望它 returns 是一个错误:
_ = 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 中?
当然不用下载了。 重点是省流量。
看起来您可以使用 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 { [=10=].key }
if !keys.contains("myKey") {
// upload unique file
}
case .failure(let error):
print("Failed: \(error.errorDescription).")
}
}