簡體   English   中英

如何使用未經身份驗證的用戶從 Swift 中的 AWS S3 存儲桶下載文件

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM