簡體   English   中英

帶有aws-amplify Storage的“配置中缺少憑據”

[英]“Missing credentials in config” with aws-amplify Storage

我最近從舊版本的aws-amplify升級到了version

"aws-amplify": "^1.0.2"

這樣做時,嘗試上傳到存儲桶時,我立即開始出錯。 [WARN] 38:42.445 StorageClass - error uploading": CredentialsError: "Missing credentials in config"

經過一番挖掘后,我發現在最新版本的aws-amplify中,一些新密鑰已添加到存儲配置中。 “憑證”和“級別”。 文檔沒有以任何方式提及這些內容,並且我無法確切找到此“憑證”密鑰需要什么值才能正常工作(使用Auth和Storage的手動配置)。 任何人對此憑證對象應該是什么樣的都有任何想法?

您不需要手動設置憑據密鑰,Amplify會自動設置Storage類的憑據。 由於您的環境在更新之前可以正常工作,因此該問題可能與aws-sdk軟件包有關。 該問題與node_modules文件夾中的多個aws-sdk軟件包node_modules 通常,簡單地刪除aws-sdk文件夾不起作用,因為已緩存了項目文件。 以下是解決react-native項目問題的步驟,但是您可以根據自己的環境進行調整:

  1. 確保您的package.json文件中的依賴項下沒有aws-sdk ,因為aws-amplify已包含AWS開發工具包。 如果package.json文件中包含aws-sdk ,請運行以下命令將其刪除:

     $ npm uninstall aws-sdk --save 
  2. 確保您使用的是最新版本的aws-amplify軟件包。

  3. 從項目文件夾中刪除package-lock.json文件(不要忘記創建該文件的副本)。

  4.  $ rm -rf node_modules && npm install 

    此命令將刪除您的node_modules文件夾,並根據package.json文件重新安裝所有軟件包。

  5. (可選)您可以通過輸入以下命令之一來清除本地緩存:

     $ watchman watch-del-all $ rm -rf /tmp/haste-map-react-native-packager-* $ rm -rf /tmp/metro-bundler-cache-* 

這是因為Amplify使用aws-sdk來獲取credentials(accessKeyId, secretAccessKey) 但找不到它,因為您可能尚未配置它。 因此,請先配置它,然后再配置aws-amplify。 無需卸載任何東西。

AWS.config.update({...credential})
Amplify.configure({...credential})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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