使用 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).")
    }
}