我开始使用mongolab和AWS的解析服务器,一切正常,但是没有检索到图像,我在某处读到了我需要设置" fileKey"。我尝试将其添加到AWS控制台,如下图所示。但它仍然无法正常工作?我做错了什么,我还需要将它添加到我的IOS Swift项目中的appDelegate吗?我该怎么办?
答案 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应用程序版本:
在导航窗格中,单击“应用程序版本”。
单击“源”下的.zip文件链接以在本地下载应用程序。
上传新版本的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。
获取解析文件密钥: 可以从Parse.com控制台获取Parse托管文件密钥。 登录Parse.com,选择您的应用并复制"文件密钥"在应用程序设置下>安全与安全键。 注意:Parse生成"文件密钥"可以在" beta"仅限仪表板。
我知道这似乎是一个简单解决方案的冗长详细说明,但它也应该帮助其他Parse开发人员将来需要在其Elastic Beanstalk环境中更新其Parse Server应用程序。例如,如果您想要store files post-migration to your own S3 bucket
答案 1 :(得分:1)