理智,
更新:截至 2016 年 3 月 9 日太平洋标准时间下午 12 点,“Parse Server on AWS Elastic Beanstalk”解决方案包括 FILE_KEY 环境属性并由应用程序解析。因此,无需执行下面的此过程,但它对于您将来需要进行的任何其他应用程序更新仍然有用。 /END 更新
为了澄清您的问题,我假设您无法访问任何“旧”解析文件(在迁移之前上传到您的应用程序)并且您没有遇到问题访问新上传的文件?如果是这样,请继续阅读。
问题:无法检索在迁移到 AWS Elastic Beanstalk 上的 Parse Server 之前上传到您的应用程序的任何文件。
问题:由于路径不正确,缺少您的 Parse 文件密钥,迁移的 Parse Sever 无法检索旧文件(托管在 Parse 拥有的 S3 存储桶上)。例如。如果您对与文件关联的对象执行简单的 GET,您将获得以下信息:
“网址”:http://files.parsetfss.com/invalid-file-key/tfss-0a209bb7-8497-4e4f-8cdf-a5d4190a48c4-myTwins.jpg
/invalid-file-key/ URL 参数是缺少的成分,如果未提供文件密钥,则解析服务器将其作为默认占位符放置。在进行以下建议的更改后,相同的请求将返回正确的 url,并将 /invalid-file-key/ 替换为您的 /actual File Key/。
要了解有关 Parse Files 的更多信息,请在此处查看我的 other Stack Overflow response,了解迁移前/后的 Parse Files。
解决方案:在 EB 环境属性中设置 FILE_KEY 属性名称是正确的,但遗憾的是,您需要对 Parse 服务器上的 index.js 文件进行额外更改实际读取 File Key 属性。有两种方法可以更新 Parse Server 应用程序。 Elastic Beanstalk 控制台或使用 Elastic Beanstalk CLI (EB CLI)。下面提供了两种解决方案:
将您的 Parse 文件“文件密钥”添加到 AWS Elastic Beanstalk 上的现有 Parse 服务器。
(控制台)使用 AWS Elastic Beanstalk 更新应用程序版本
管理控制台:
此解决方案涉及下载 Parse Server 的现有 EB 应用程序版本(作为 .zip 存档),在本地修改 index.js 文件,将其压缩备份,最后将更改上传到相同的应用程序版本页面作为新版本的应用程序。
下载和编辑当前 Parse Server EB 应用程序版本:
上传您的 Parse Server 应用程序的新版本:
在 Parse Server 应用程序的应用程序版本 EB 页面中,单击上传。
提供版本标签和说明,选择您更新的 .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 应用程序的新版本。
- mkdir tmp-app-文件夹
- cd tmp-app-文件夹
- eb init(选择运行代码的区域、应用和环境)
- eb 实验室下载(从 EB 环境下载代码)
- 对 index.js 文件进行必要的更改
- eb 部署(应用重建)
- eb setenv FILE_KEY=(应用程序再次重建)
完成。
获取您的解析文件密钥:
Parse 托管的文件密钥可以从 Parse.com 控制台获取。
登录 Parse.com,选择您的应用并复制“应用设置”>“安全和密钥”下的“文件密钥”。
注意:Parse 仅在“beta”仪表板中提供“文件密钥”。
我知道这对于一个简单的解决方案来说似乎是一个冗长的详细说明,但它也应该有助于其他 Parse 开发人员将来需要在他们的 Elastic Beanstalk 环境中更新他们的 Parse Server 应用程序。例如,如果你想store files post-migration to your own S3 bucket