aws-amplify 存储中的“配置中缺少凭据”

Cau*_*wer 6 amazon-s3 amazon-web-services aws-sdk aws-amplify

我最近从旧版本的 aws-amplify 升级到版本

"aws-amplify": "^1.0.2"

这样做时,我在尝试上传到我的存储桶时立即开始出错。 [WARN] 38:42.445 StorageClass - error uploading": CredentialsError: "Missing credentials in config"

经过一番挖掘,我发现在最新版本的 aws-amplify 中,一些新的密钥被添加到存储配置中;“凭据”和“级别”。文档没有以任何方式提及这些,我无法确切地找到这个“凭证”密钥需要什么值才能正常工作(手动配置身份验证和存储)。任何人都知道这个凭证对象应该是什么样的?

小智 1

您无需手动设置凭据密钥,Amplify 会自动设置存储类的凭据。由于您的环境在更新之前正常工作,因此问题可能与aws-sdk软件包有关。aws-sdk该问题与文件夹中的多个包有关node_modules。一般来说,简单地删除aws-sdk文件夹是行不通的,因为您的项目文件已被缓存。以下是如何解决项目问题的步骤react-native,但您可以根据您的环境进行调整:

  1. 确保您的文件中没有aws-sdk依赖项package.json,因为aws-amplify已经包含了 AWS SDK。aws-sdk如果文件中有 ,package.json请运行命令将其删除:

    $ npm uninstall aws-sdk --save
    
    Run Code Online (Sandbox Code Playgroud)
  2. 确保您使用的是最新版本的aws-amplify软件包。

  3. 从项目文件夹中删除该package-lock.json文件(不要忘记创建该文件的副本)。

  4. 跑步

    $ rm -rf node_modules && npm install
    
    Run Code Online (Sandbox Code Playgroud)

    此命令将删除您的node_modules文件夹并根据该package.json文件重新安装所有软件包。

  5. 您也可以通过一一输入以下命令来清除本地缓存:

    $ watchman watch-del-all
    $ rm -rf /tmp/haste-map-react-native-packager-*
    $ rm -rf /tmp/metro-bundler-cache-*
    
    Run Code Online (Sandbox Code Playgroud)