所以我在Heroku上设置了parse-server,特别是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
我已经更换了所有' 20mb'用' 100mb'在这4个文件中并将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
无论实际大小如何,它似乎都显示为字节= 447?
GitHub上还有另一个parse-server版本,它有一个不同的FilesRouter.js文件和其他版本,但它们看起来像是开发大师。
我想知道是否可以建议用这个覆盖我现有的设置,如果是这样的话怎么做而不填写我到目前为止所做的事情?或者即使这会解决问题??
是否与仪表板有关?我还没有找到另一种上传文件的方法,并将它们链接到s3存储桶。
我还应该补充一点,我不希望用户上传文件,这只是我试图用一些可以下载的媒体文件填充应用程序。
感谢您在这里提供的任何帮助,尽管我已经找了很长时间,但这个问题一直让我难以理解。
答案 0 :(得分:0)
似乎我的IP的糟糕上传速度对此负责。
回过头来清理我的更改。 index.js是您设置maxUploadSize变量所需的唯一地方。