解析服务器 S3 适配器已弃用
Parse Server S3 Adapter Deprecated
Parse S3 适配器对 S3_ACCESS_KEY
和 S3_SECRET_KEY
的要求现已弃用。它说要使用环境变量:AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
。我们已经设置了一个具有访问密钥 ID 的 AWS 用户,我们也有我们的密钥。我们已更新到最新版本的适配器并删除了旧的 S3_X_Key
变量。不幸的是,一旦我们这样做,我们就无法访问、上传或更改 S3 存储桶上的文件。用户确实可以访问我们的 buckets 属性,如果我们将其改回使用显式 S3_ACCESS_KEY
并保密一切正常。
我们在 Heroku 上托管,到目前为止没有遇到任何问题。
设置此设置还需要做什么?
此弃用通知对于如何解决此问题含糊不清。
(link要注意:https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials)
我执行了以下步骤,现在可以使用了:
安装了 Amazon 的 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 环境变量
出口S3_BUCKET=
使用命令安装文件适配器
npm install --save @parse/s3-files-adapter
在我的解析服务器的 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
})
如果您使用的是 AWS 或托管解决方案,您可以在其中登录服务器并 运行 服务器上的 AWS Configure 命令,那么 Arjav Dave 下面的回答是最好的。或者,如果您 运行 将所有内容都放在本地。
但是,我问的是 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
然后返回到此贴的顶部。
希望对任何对此感到困惑的人有所帮助。
Parse S3 适配器对 S3_ACCESS_KEY
和 S3_SECRET_KEY
的要求现已弃用。它说要使用环境变量:AWS_ACCESS_KEY_ID
和 AWS_SECRET_ACCESS_KEY
。我们已经设置了一个具有访问密钥 ID 的 AWS 用户,我们也有我们的密钥。我们已更新到最新版本的适配器并删除了旧的 S3_X_Key
变量。不幸的是,一旦我们这样做,我们就无法访问、上传或更改 S3 存储桶上的文件。用户确实可以访问我们的 buckets 属性,如果我们将其改回使用显式 S3_ACCESS_KEY
并保密一切正常。
我们在 Heroku 上托管,到目前为止没有遇到任何问题。
设置此设置还需要做什么?
此弃用通知对于如何解决此问题含糊不清。 (link要注意:https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials)
我执行了以下步骤,现在可以使用了:
安装了 Amazon 的 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 环境变量
出口S3_BUCKET=
使用命令安装文件适配器
npm install --save @parse/s3-files-adapter
在我的解析服务器的 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 })
如果您使用的是 AWS 或托管解决方案,您可以在其中登录服务器并 运行 服务器上的 AWS Configure 命令,那么 Arjav Dave 下面的回答是最好的。或者,如果您 运行 将所有内容都放在本地。
但是,我问的是 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
然后返回到此贴的顶部。
希望对任何对此感到困惑的人有所帮助。