[英]How to download file from an AWS S3 bucket in Swift with unauthenticated users
我想使用 Swift 從我的 iOS 應用程序中下載我的 AWS S3 存儲桶中的文件。 我該怎么做呢?
我做了很多研究和谷歌搜索,只能從 AWS 找到關於如何在 Objective-C 中執行此操作的文檔。 我已經設置了 AWS Cognito 並授予未經身份驗證的用戶從我的存儲桶中獲取對象的權限。 我現在只需要弄清楚如何從我的存儲桶中實際下載。 任何人都可以在這里指導我正確的方向嗎? 我將不勝感激任何幫助。
您還可以使用 AWS Amplify 框架。 存儲相關文檔位於: https ://aws-amplify.github.io/docs/ios/storage,它將指導您配置 S3 存儲桶並使用 CocoaPods 安裝 Amplify。 即使您有自己的存儲桶,我也建議您查看該文檔。 如果您想使用現有的 S3 存儲桶,如何將其添加到amplifyconfiguration.json
以配置 Amplify Storage 插件會更清楚。
Swift 代碼將如下所示:
Amplify.Storage.downloadData(key: "myKey") { (event) in
switch event {
case .completed(let data):
print("Completed: \(data)")
case .failed(let storageError):
print("Failed: \(storageError.errorDescription). \(storageError.recoverySuggestion)")
case .inProcess(let progress):
print("Progress: \(progress)")
default:
break
}
}
如果您使用 AWS 資源來檢索對象,則它們必須具有訪問 S3 存儲桶中數據的角色
如果您直接從 AWS 之外的設備檢索,那么您必須公開 S3 存儲桶
但是我建議你使用 EC2 或 Lambda 作為代理 並且使用你的 iOS 應用程序會嘗試檢索數據,這時候 EC2 或 Lambda 會先獲取並與你共享數據 所以,你不需要讓你的公共桶
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.