首页 > 解决方案 > 使用 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)")
}

}

有没有其他方法可以检查文件是否存在于放大中?

当然不用下载。重点是节省流量。

标签: swiftaws-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 { $0.key }
        if !keys.contains("myKey") {
            // upload unique file
        }
        
    case .failure(let error):
        print("Failed: \(error.errorDescription).")
    }
}

推荐阅读