Parse S3 Adapter S3_ACCESS_KEY
和S3_SECRET_KEY
的要求现已弃用。它说要使用环境变量:AWS_ACCESS_KEY_ID
和AWS_SECRET_ACCESS_KEY
。我们已经为AWS用户设置了访问密钥ID,我们也有密钥。我们已更新到最新版本的适配器并删除了旧的S3_X_Key
变量。不幸的是,一旦我们这样做,我们就无法访问,上传或更改S3存储桶上的文件。用户可以访问我们的存储桶属性,如果我们将其更改回使用显式S3_ACCESS_KEY
并且秘密一切正常。
我们在Heroku上主持,到目前为止还没有任何问题。
还需要做些什么来设置它?
此弃用通知对于如何解决此问题非常模糊。 (链接到通知:https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials)
答案 0 :(得分:3)
我做了以下步骤,现在正在工作:
安装了亚马逊的CLI http://docs.aws.amazon.com/cli/latest/userguide/installing.html
通过创建用户然后创建密钥ID和密码来配置CLI http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html
设置S3_BUCKET env变量
导出S3_BUCKET =
使用命令
安装的文件适配器npm install --save @parse/s3-files-adapter
在我的parse-server的index.js中添加了文件适配器
var S3Adapter = require('@parse/s3-files-adapter');
var s3Adapter = new S3Adapter();
var api = new ParseServer({
appId: 'my_app',
masterKey: 'master_key',
filesAdapter: s3Adapter
})
答案 1 :(得分:1)
但是,我问的是Heroku,这适用于任何可以设置ENV变量的服务器环境。
真的只需几步就可以了。如果您有以前的版本设置,则要将文件适配器切换为刚读取:
filesAdapter: 'parse-server-s3-adapter',
(或者你的npm安装包被称为一些正在使用@parse/...
一个)
取出require
语句,不要在index.js中创建S3Adapter
或类似内容的任何实例变量。
然后在Heroku.com中创建配置变量或使用CLI:heroku config:set AWS_ACCESS_KEY_ID=abc
和heroku config:set AWS_SECRET_ACCESS_KEY=abc
现在运行并测试您的上传内容。一切都应该是好的。
新适配器使用环境变量进行访问,您只需告诉它在index.js文件中安装了哪个文件适配器。它将处理其余的事情。如果这不起作用,则值得测试IAM配置文件并确保它在返回此部分之前全部正常工作。见下文:
仍然无法使用?尝试运行此示例(在测试时将sample.js编辑为您的存储桶): https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html
完全迷失,不知道从哪里开始?
1获取您的AWS凭证 https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html
2设置您的水桶 https://transloadit.com/docs/faq/how-to-set-up-an-amazon-s3-bucket/ (也请关注IAM用户的部分)
3遵循IAM最佳实践 https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
然后返回到此帖子的顶部。
希望能帮助其他被此困惑的人。