解析服务器(aws-mongolab)图像无法检索

时间:2016-02-19 10:36:36

标签: ios swift amazon-web-services parse-server

我开始使用mongolab和AWS的解析服务器,一切正常,但是没有检索到图像,我在某处读到了我需要设置" fileKey"。我尝试将其添加到AWS控制台,如下图所示。但它仍然无法正常工作?我做错了什么,我还需要将它添加到我的IOS Swift项目中的appDelegate吗?我该怎么办?

enter image description here

2 个答案:

答案 0 :(得分:4)

理智,

更新:截至2016年3月9日下午12点," Parse Server on AWS Elastic Beanstalk"解决方案包含FILE_KEY环境属性​​,并由应用程序解析。因此,无需在下面执行此过程,但它仍然适用于您将来需要进行的任何其他应用程序更新。 / END更新

为了澄清您的问题,我假设您无法访问任何“遗留”解析文件(在迁移之前上传到您的应用程序)并且您有问题访问新上传的文件?如果是这样,请继续阅读。

问题:在迁移到AWS Elastic Beanstalk上的Parse Server之前,无法检索上传到您的应用程序的任何文件。

问题:由于错误的路径缺少您的Parse文件密钥,迁移的Parse Sever无法检索旧文件(托管在Parse拥有的S3存储桶上)。例如。如果对与文件关联的对象执行简单的GET,您将获得以下内容:

" URL":http://files.parsetfss.com/invalid-file-key/tfss-0a209bb7-8497-4e4f-8cdf-a5d4190a48c4-myTwins.jpg

/invalid-file-key/ URL参数是缺失的成分,如果未提供文件密钥,则由Parse Server作为默认占位符。在下面进行建议的更改后,相同的请求将返回正确的网址,并将/invalid-file-key/替换为您的/实际文件密钥/。

要了解有关Parse Files的更多信息,请参阅我的other Stack Overflow response此处有关迁移前/解析文件的信息。

解决方案:在EB环境属性中设置FILE_KEY属性名称是正确的,但遗憾的是,您需要对解析服务器上的index.js文件进行其他更改实际上读取文件密钥属性。有两种方法可以更新您的Parse Server应用程序。 Elastic Beanstalk控制台或使用Elastic Beanstalk CLI(EB CLI)。两种解决方案均在下面提供:

将您的解析文件“文件密钥”添加到AWS Elastic Beanstalk上的现有解析服务器。

  

(控制台)使用AWS Elastic Beanstalk更新应用程序版本   管理控制台:

此解决方案涉及下载Parse Server的现有EB Application Version(作为.zip归档文件),在本地修改index.js文件,将其重新压缩,最后将更改上载到相同的Application Versions页面作为新版本的应用程序。 下载并编辑当前的Parse Server EB应用程序版本:

  • 打开Elastic Beanstalk控制台。
  • 从区域列表中,选择包含您要使用的应用程序的区域。
  • 在Elastic Beanstalk控制台应用程序页面中,单击要添加新应用程序版本的应用程序的名称。
  • 在导航窗格中,单击“应用程序版本”。

    enter image description here

  • 单击“源”下的.zip文件链接以在本地下载应用程序。

  • 解压缩应用程序
  • 在应用程序的根目录中编辑index.js文件,并添加以黄色突出显示的行。 enter image description here
  • 保存index.js文件。
  • 压缩应用程序( 注意 仅压缩解压缩文件夹中的根对象,而不是包含对象的文件夹。)

上传新版本的Parse Server应用程序:

  • 在Parse Server应用程序的Application Versions EB页面中,单击Upload。

  • 提供版本标签和说明,选择更新后的.zip应用,然后点击上传

  • 这将在上一版本仍在运行时上传您应用程序的“新版本”。

部署新版本的Parse Server应用程序:

  • 选择新上传的版本,然后单击“部署”。

  • 从下拉列表中选择您的环境,然后单击“部署”。

最后一步: 添加FILE_KEY环境属性​​,如屏幕截图所示。单击“应用”。

如果您遇到此解决方案的任何问题,请按照以下EB部署说明进行操作:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html

  

(CLI)使用Elastic Beanstalk命令行界面(EB CLI):

此解决方案使用EB CLI下载,编辑和部署新版本的Parse Server Application。

  • mkdir tmp-app-folder
  • cd tmp-app-folder
  • eb init(选择区域,应用和运行代码的环境)
  • eb labs download(从EB环境下载代码)
  • 对index.js文件进行必要的更改
  • eb deploy(app rebuilds)
  • eb setenv FILE_KEY =(app再次重建) 完成。

获取解析文件密钥: 可以从Parse.com控制台获取Parse托管文件密钥。 登录Parse.com,选择您的应用并复制"文件密钥"在应用程序设置下>安全与安全键。 注意:Parse生成"文件密钥"可以在" beta"仅限仪表板。

我知道这似乎是一个简单解决方案的冗长详细说明,但它也应该帮助其他Parse开发人员将来需要在其Elastic Beanstalk环境中更新其Parse Server应用程序。例如,如果您想要store files post-migration to your own S3 bucket

答案 1 :(得分:1)

看起来你在index.js文件中遗漏了fileKey。

从解析仪表板获取文件密钥

enter image description here

转到解析服务器的index.js文件并设置filekey值。

var api = new ParseServer({     databaseURI:databaseUri || 'mongodb的://本地主机:27017的/ dev',       appId:'xxx',       clientKey:'xxx',       masterKey:'xxx',       fileKey:'xxx' });