使用 AWS 增强存储进行"Missing credentials in config"



我最近从旧版本的aws放大器升级到版本

"aws-amplify": "^1.0.2"

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

经过一番挖掘,我发现在最新版本的aws-amplifier中,存储配置中添加了一些新密钥;"凭据"one_answers"级别"。文档中没有以任何方式提到这些,我也无法准确找到这个"凭据"密钥需要什么值才能正常工作(手动配置Auth和Storage(。有人知道这个凭证对象应该是什么样子的吗?

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

  1. 请确保您的package.json文件中没有依赖项下的aws-sdk,因为aws-amplify已经包含了AWS SDK。如果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放大之前先配置它。无需卸载任何内容。

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

相关内容

最新更新