感谢所有输入和答案,它帮助我从Parse迁移到AWS BS。但是,我仍然有几个问题,我似乎无法找到答案...或者至少我能理解采取行动。所以任何帮助都会受到赞赏。
使用以下对index.js的更改我可以访问AWS ParseDB / MongoDB,我可以上传和检索图像并显示迁移前后图像(尚未完成迁移)。
这只是添加了fileKey的基础更改,我假设是为什么我可以看到我的预迁移图像。但是,当我更改index.js以包含S3项作为指令详细信息时,我只是通过构建应用程序得到关于数据未正确格式化的错误。下一节
没有S3的工作Index.js:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://accessID:accessPassword@dsxxxxx.mlab.com:xxxx/parse-aws',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'AppID',
fileKey: process.env.FILE_KEY || 'fileKey',
masterKey: process.env.MASTER_KEY || 'masterkey'
});
这是我使用S3存储桶存储图像所做的index.js的更改。
修改Index.js以使用S3:
var express = require('express');
var ParseServer = require('parse-server').ParseServer;
var S3Adapter = require('parse-server').S3Adapter;
var databaseUri = process.env.DATABASE_URI || process.env.MONGOLAB_URI
if (!databaseUri) {
console.log('DATABASE_URI not specified, falling back to localhost.');
}
var api = new ParseServer({
databaseURI: databaseUri || 'mongodb://accessID:password@dsxxxxx.mlab.com:xxxxx/parse-aws',
cloud: process.env.CLOUD_CODE_MAIN || __dirname + '/cloud/main.js',
appId: process.env.APP_ID || 'AppID',
fileKey: process.env.FILE_KEY || 'FileKey,
masterKey: process.env.MASTER_KEY || 'MasterKey'
filesAdapter: new S3Adapter(
'myaccess key', 'secret key', 'bucket' {directAccess: true}),
});
部署此配置然后尝试使用上面第一版index.js访问我的应用程序没有问题时,我收到以下错误/消息。
在xcode中构建和运行应用程序我收到此错误 [错误]:最终错误地运行命令失败:错误Domain = NSCocoaErrorDomain Code = 3840“JSON文本没有以数组或对象开头,并且选项允许未设置片段。” UserInfo = {NSDebugDescription = JSON文本不以数组或对象开头,并且选项允许未设置片段。}
如果我尝试登录该应用程序,则会收到错误消息(无法读取数据,因为格式错误)
我的AppDelegate在两者之间没有什么不同......如果我重新部署第一个Index.js我没有问题也没有S3。
最后一个问题(如果我得到上述工作)是如何从Parse获取所有预迁移映像到我的桶中,以便所有映像都在同一位置,我没有使用MongoDB Gridstore的。
提前感谢您的帮助 PS所有正确的accessKeys,secretKeys,fileKeys等都在index.js和AWS BeanStalk Dashboard的环境配置部分中......即使我使用的是普通的index.js,所有的S3项都在那里。所以它必须是S3扩展index.js中的东西。 感谢
UPDATE 谢谢!...我确实解决了这个问题(MasterKey之后的逗号)并在{directAccess:true}之后删除逗号后面的文件正在下面的filesAdapter中删除
但它仍然加载环境,当我尝试使用我的应用程序访问时,我在构建和运行时在Xcode中收到以下错误
`
/var/app/current/index.js:19
filesAdapter: new S3Adapter(
^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at exports.runInThisContext (vm.js:53:16)
at Module._compile (module.js:374:25)
at Object.Module._extensions..js (module.js:417:10)
at Module.load (module.js:344:32)
at Function.Module._load (module.js:301:12)
at Function.Module.runMain (module.js:442:10)
at startup (node.js:136:18)
at node.js:966:3
npm ERR! Linux 4.1.17-22.30.amzn1.x86_64
npm ERR! argv "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/node" "/opt/elasticbeanstalk/node-install/node-v4.3.0-linux-x64/bin/npm" "start"
npm ERR! node v4.3.0
npm ERR! npm v2.14.12
npm ERR! code ELIFECYCLE
npm ERR! parse-server-example@1.0.0 start: node index.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the parse-server-example@1.0.0 start script 'node index.js'.
npm ERR! This is most likely a problem with the parse-server-example package,
npm ERR! not with npm itself.
`
[错误]:最终错误地运行命令失败:错误Domain = NSCocoaErrorDomain Code = 3840“JSON文本没有以数组或对象开头,并且选项允许未设置片段。” UserInfo = {NSDebugDescription = JSON文本不以数组或对象开头,并且选项允许未设置片段。}