我开始使用 mongolab 和 AWS 的解析服务器,一切正常,但是没有检索到图像,我在某个地方读到了我需要设置“fileKey”的地方。我尝试将其添加到 AWS 控制台,如下图所示。但是它仍然无法正常工作?我做错什么了吗,我是否需要将它也添加到我的 IOS Swift 项目中的 appDelegate 中?我该怎么做?
2 回答
更清醒,
更新:截至 2016 年 3 月 9 日太平洋标准时间下午 12 点,“ 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
URL 参数是缺少的/invalid-file-key/
成分,如果未提供文件密钥,则解析服务器将其作为默认占位符放置。在进行以下建议的更改后,相同的请求将返回正确的 url,并/invalid-file-key/
替换为您的 /actual File Key/。
要了解有关 Parse Files 的更多信息,请在此处查看我关于迁移前/后 Parse Files的其他 Stack Overflow 回复。
解决方案:在 EB 环境属性中设置 FILE_KEY 属性名称是正确的,但不幸的是,您需要对 Parse 服务器上的 index.js 文件进行额外更改才能实际读取文件密钥属性。有两种方法可以更新 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 应用程序版本:
- 打开 Elastic Beanstalk 控制台。
- 从区域列表中,选择包含您要使用的应用程序的区域。
- 在 Elastic Beanstalk 控制台应用程序页面中,单击要添加新应用程序版本的应用程序的名称。
在导航窗格中,单击应用程序版本。
单击源下的 .zip 文件链接以在本地下载应用程序。
- 解压缩应用程序
- 编辑应用程序根目录中的 index.js 文件并添加以黄色突出显示的行。
- 保存 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 应用程序的新版本。
- mkdir tmp-app-文件夹
- cd tmp-app-文件夹
- eb init(选择运行代码的区域、应用和环境)
- eb labs 下载(从 EB 环境下载代码)
- 对 index.js 文件进行必要的更改
- eb deploy(应用程序重建)
- eb setenv FILE_KEY=(应用程序再次重建) 完成。
获取 Parse 文件密钥:Parse 托管的文件密钥可以从 Parse.com 控制台获取。登录 Parse.com,选择您的应用并复制“应用设置”>“安全和密钥”下的“文件密钥”。注意:Parse 仅在“beta”仪表板中提供“文件密钥”。
我知道这对于一个简单的解决方案来说似乎是一个冗长的详细说明,但它也应该有助于其他 Parse 开发人员将来需要在他们的 Elastic Beanstalk 环境中更新他们的 Parse Server 应用程序。例如,如果您想在迁移后将文件存储到您自己的 S3 存储桶