【发布时间】:2017-02-06 08:27:40
【问题描述】:
所以我已经设置了解析服务器,特别是在 Heroku 上的 parse-server-example,使用 mLab db 和 s3 文件适配器进行存储。
我一直在搜索 GitHub 和堆栈溢出,试图找到解决 maxUploadSize 限制的方法。
默认情况下,此选项设置为“20mb”,消息人士称您可以将此选项修改为您喜欢的任何内容。在我的 parse-server-example 中有 4 个文件包含此变量:
1. ParseServer.js
/parse-server-example/node_modules/parse-server/lib
2. FilesRouter.js
/parse-server-example/node_modules/parse-server/lib/Routers
3.parse-server.js
/parse-server-example/node_modules/parse-server/lib/cli/definitions
3. index.js
/parse-server-example
4. defaults.js
/parse-server-example/node_modules/parse-server/lib
我已将这 4 个文件中的所有“20mb”实例替换为“100mb”,并将 maxUploadSize 选项变量添加到我的 index.js 文件中。我认为唯一重要的地方是 index.js 文件。这是我最初更改它的地方,它确实允许更大的文件,然后我绝望地在其他位置更改它,结果没有任何变化。
index.js:
var api = new ParseServer({
//**** General Settings ****//
databaseURI: databaseUri || 'mongodb://localhost:27017/dev',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
serverURL: process.env.SERVER_URL || 'http://localhost:1337/parse',
maxUploadSize: '100mb',
现在我可以很容易地上传高达 40mb 的文件,但是当我尝试上传任何更大的文件时,它会在仪表板中显示为上传很长一段时间然后就停止了。
我还读到在 .ebextensions 中设置 client_max_body_size 可能会起作用,但我认为这适用于 aws 上的弹性 beanstalk,所以不要认为它与我相关。虽然我什至尝试在 /parse-server-example/ 文件夹中的 .ebextensions 文件夹内的 files.config 文件中添加变量。
我正在通过解析仪表板上传文件,然后将它们传输到我设置的具有唯一 PFFIle 名称的 s3bucket。
这是我尝试上传 50mb 后 Heroku 日志的样子:
2017-02-06T06:58:14.188932+00:00 app[web.1]: } method=POST, url=/parse/classes/Part, host=parse-server-example.herokuapp.com, connection=close, content-type=text/plain, origin=http://0.0.0.0:4040, accept-encoding=gzip, deflate, accept=*/*, user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/602.3.12 (KHTML, like Gecko) Version/10.0.2 Safari/602.3.12, referer=http://0.0.0.0:4040/apps/parse-server-example/browser/Part, accept-language=en-au, x-request-id=df8ecd66-76f5-4592-9c82-44a86f6c4165, x-forwarded-for=101.165.231.37, x-forwarded-proto=https, x-forwarded-port=443, via=1.1 vegur, connect-time=1, x-request-start=1486364292657, total-route-time=0, content-length=235, __op=Delete
2017-02-06T06:58:14.210449+00:00 app[web.1]: [36mverbose[39m: RESPONSE from [POST] /parse/classes/Part: {
2017-02-06T06:58:14.210451+00:00 app[web.1]: "status": 201,
2017-02-06T06:58:14.210452+00:00 app[web.1]: "response": {
2017-02-06T06:58:14.210453+00:00 app[web.1]: "objectId": "vrIuYJCOfG",
2017-02-06T06:58:14.210455+00:00 app[web.1]: "createdAt": "2017-02-06T06:58:14.190Z"
2017-02-06T06:58:14.210456+00:00 app[web.1]: },
2017-02-06T06:58:14.210457+00:00 app[web.1]: "location": "https://parse-server-example.herokuapp.com/parse/classes/Part/vrIuYJCOfG"
2017-02-06T06:58:14.210459+00:00 app[web.1]: } status=201, objectId=vrIuYJCOfG, createdAt=2017-02-06T06:58:14.190Z, location=https://parse-server-example.herokuapp.com/parse/classes/Part/vrIuYJCOfG
2017-02-06T06:58:29.061410+00:00 heroku[router]: at=info method=OPTIONS path="/parse/files/South%20Park%20s09e02%20-%20Die%20Hippie,%20Die%20_%20480p%20UNCENSORED%20x264%20NIT158.mp4" host=parse-server-example.herokuapp.com request_id=0e76d848-3c8a-44e5-8efe-4d586ced8e8a fwd="111.111.111.11" dyno=web.1 connect=0ms service=1ms status=200 bytes=477
无论实际大小如何,似乎所有内容都显示为 bytes=447?
在 GitHub 上有另一个版本的 parse-server 具有不同的 FilesRouter.js 文件和其他文件,但它们看起来是开发大师。
我想知道是否建议用这个覆盖我现有的设置,如果是这样,如何在不填满我迄今为止所做的事情的情况下做到这一点?或者即使这能解决问题??
它与仪表板有关吗?我还没有找到另一种上传文件并将它们链接到 s3 存储桶的方法。
我还应该补充一点,我不希望用户上传文件,这只是我试图用一些可以下载的媒体文件填充应用程序。
感谢您在这里的任何帮助,尽管寻找了很长时间,但我仍然很难弄清楚这一点。
【问题讨论】:
标签: heroku parse-platform amazon-s3 parse-server