我最近从旧版本的aws-amplify升级到了版本
"aws-amplify": "^1.0.2"
,这样做时,当我尝试上传到存储桶时,我立即开始出错。
[WARN] 38:42.445 StorageClass - error uploading": CredentialsError: "Missing credentials in config"
经过一番挖掘,我发现在最新版本的aws-amplify中,一些新的密钥已添加到存储配置中。 “凭证”和“级别”。文档没有以任何方式提及这些内容,并且我无法确切找到此“凭证”密钥需要什么值才能正常工作(使用Auth和Storage的手动配置)。任何人都对此凭据对象的外观有任何想法?
答案 0 :(得分:1)
您不需要手动设置凭据密钥,Amplify会自动设置Storage类的凭据。由于您的环境在更新之前就可以使用,因此问题可能与aws-sdk
软件包有关。该问题与您的aws-sdk
文件夹中的多个node_modules
软件包有关。通常,简单地删除aws-sdk
文件夹不起作用,因为已缓存了项目文件。以下是解决react-native
项目问题的步骤,但是您可以根据自己的环境进行调整:
请确保您的aws-sdk
文件中没有package.json
依赖项,因为aws-amplify
已包含AWS开发工具包。如果aws-sdk
文件中有一个package.json
,请运行以下命令将其删除:
$ npm uninstall aws-sdk --save
确保您使用的是aws-amplify
软件包的最新版本。
从项目文件夹中删除package-lock.json
文件(不要忘记创建文件的副本)。
运行
$ rm -rf node_modules && npm install
此命令将删除您的node_modules
文件夹,并根据package.json
文件重新安装所有软件包。
(可选)您可以通过输入以下命令之一来清除本地缓存:
$ watchman watch-del-all
$ rm -rf /tmp/haste-map-react-native-packager-*
$ rm -rf /tmp/metro-bundler-cache-*
答案 1 :(得分:0)
这是因为Amplify正在使用aws-sdk来获取credentials(accessKeyId, secretAccessKey)
。但找不到它,因为您可能尚未配置它。因此,请先配置它,然后再配置aws-amplify。无需卸载任何内容。
AWS.config.update({...credential})
Amplify.configure({...credential})