解析服务器 (aws-mongolab) 图像未检索
Parse Server (aws-mongolab) Images Not Retrieving
我开始使用带有 mongolab 和 AWS 的解析服务器,一切正常,但没有检索到图像,我在某处读到我需要设置 "fileKey"。我尝试将其添加到 AWS 控制台,如下图所示。但是它仍然不起作用?我做错了什么吗,我是否还需要将它添加到我的 IOS Swift 项目中的 appDelegate 中?我该怎么做?
理智,
更新:截至太平洋标准时间 2016 年 3 月 9 日中午 12 点,“Parse Server on AWS Elastic Beanstalk”解决方案包括 FILE_KEY 环境 属性 并由应用程序解析。因此,无需执行下面的此过程,但它对于您将来需要进行的任何其他应用程序更新仍然有用。 /结束更新
为了澄清您的问题,我假设您无法访问您的任何“遗留”解析文件(在迁移之前上传到您的应用程序)并且您不 在访问新上传的文件时遇到问题?如果是,请继续阅读。
问题:无法检索在迁移到 AWS Elastic Beanstalk 上的 Parse Server 之前上传到您的应用程序的任何文件。
问题:迁移的 Parse 服务器无法检索遗留文件(托管在 Parse 拥有的 S3 存储桶上),因为路径不正确,缺少您的 Parse 文件密钥。例如。如果您对与文件关联的对象执行简单的 GET,您将得到以下信息:
"url":http://files.parsetfss.com/invalid-file-key/tfss-0a209bb7-8497-4e4f-8cdf-a5d4190a48c4-myTwins.jpg
/invalid-file-key/
URL 参数是缺少的成分,如果未提供文件密钥,Parse Server 会将其放置为默认占位符。在进行下面建议的更改后,相同的请求将 return 正确的 url 和 /invalid-file-key/
替换为您的 /actual File Key/。
要了解有关解析文件的更多信息,请参阅我的 此处关于 pre/post 迁移解析文件的内容。
解决方案:在 EB 环境中设置 FILE_KEY 属性 名称 属性 是正确的,但不幸的是,您您需要对 Parse Server 上的 index.js 文件进行额外的更改才能实际读取文件密钥 属性。有两种方法可以更新您的 Parse Server 应用程序。 Elastic Beanstalk 控制台或使用 Elastic Beanstalk CLI (EB CLI)。下面提供了两种解决方案:
将您的解析文件“文件密钥”添加到 AWS Elastic Beanstalk 上的现有解析服务器。
(Console) Update Application Version using the AWS Elastic Beanstalk
Management Console:
此解决方案涉及下载 Parse Server 的现有 EB 应用程序版本(作为 .zip 存档),在本地修改 index.js 文件,将其压缩备份,最后将更改上传到同一应用程序版本页面作为应用程序的新版本。
下载并编辑当前的 Parse Server EB 应用程序版本:
- 打开 Elastic Beanstalk 控制台。
- 从区域列表中,select 包含您要使用的应用程序的区域。
- 在 Elastic Beanstalk 控制台应用程序页面中,单击要添加新应用程序版本的应用程序的名称。
在导航窗格中,单击“应用程序版本”。
单击源下的 .zip 文件 link 将应用程序下载到本地。
- 解压应用程序
- 编辑应用程序根目录中的 index.js 文件并添加以黄色突出显示的行。
- 保存 index.js 文件。
- 压缩应用程序(注意 仅压缩解压缩文件夹中的根对象,而不是包含对象的文件夹。)
上传 Parse Server 应用程序的新版本:
从您的 Parse Server 应用程序的应用程序版本 EB 页面,单击上传。
提供版本标签和说明,select 您更新的 .zip 应用程序并单击 上传。
这将上传您的应用程序的“新版本”,而之前的版本仍然是 运行ning。
部署 Parse Server 应用程序的新版本:
Select 新上传的版本并点击部署。
Select 您的环境,然后单击部署。
最后一步:
添加 FILE_KEY 环境 属性,如屏幕截图所示。单击应用。
如果您运行对此解决方案有任何问题,请遵循这些 EB 部署说明:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html
(CLI) Using the Elastic Beanstalk Command Line Interface (EB CLI):
此解决方案使用 EB CLI 下载、编辑和部署新版本的 Parse Server 应用程序。
- mkdir tmp-app-文件夹
- cd tmp-app-文件夹
- eb init(select 区域、应用程序和环境 运行 代码)
- eb labs download(从EB环境下载代码)
- 对 index.js 文件进行必要的更改
- eb 部署(应用重建)
- eb setenv FILE_KEY=(应用再次重建)
完成。
正在获取您的解析文件密钥:
可以从 Parse.com 控制台获取 Parse 托管文件密钥。
登录 Parse.com、select 您的应用程序并在应用程序设置 > 安全和密钥下复制 "File key"。
注意:Parse 使 "File Key" 仅在 "beta" 仪表板中可用。
我知道对于一个简单的解决方案来说,这似乎是一个冗长的说明细节,但它也应该有助于将来需要在其 Elastic Beanstalk 环境中更新其 Parse Server 应用程序的其他 Parse 开发人员。例如,如果您想 store files post-migration to your own S3 bucket
看来您在 index.js 文件中遗漏了 fileKey。
从解析仪表板获取文件密钥
转到您的 index.js 解析服务器文件并设置文件键值。
var api = new ParseServer({
数据库URI:数据库URI || 'mongodb://localhost:27017/dev',
appId: 'xxx',
客户端密钥:'xxx',
万能钥匙:'xxx',
文件键:'xxx'
});
我开始使用带有 mongolab 和 AWS 的解析服务器,一切正常,但没有检索到图像,我在某处读到我需要设置 "fileKey"。我尝试将其添加到 AWS 控制台,如下图所示。但是它仍然不起作用?我做错了什么吗,我是否还需要将它添加到我的 IOS Swift 项目中的 appDelegate 中?我该怎么做?
理智,
更新:截至太平洋标准时间 2016 年 3 月 9 日中午 12 点,“Parse Server on AWS Elastic Beanstalk”解决方案包括 FILE_KEY 环境 属性 并由应用程序解析。因此,无需执行下面的此过程,但它对于您将来需要进行的任何其他应用程序更新仍然有用。 /结束更新
为了澄清您的问题,我假设您无法访问您的任何“遗留”解析文件(在迁移之前上传到您的应用程序)并且您不 在访问新上传的文件时遇到问题?如果是,请继续阅读。
问题:无法检索在迁移到 AWS Elastic Beanstalk 上的 Parse Server 之前上传到您的应用程序的任何文件。
问题:迁移的 Parse 服务器无法检索遗留文件(托管在 Parse 拥有的 S3 存储桶上),因为路径不正确,缺少您的 Parse 文件密钥。例如。如果您对与文件关联的对象执行简单的 GET,您将得到以下信息:
"url":http://files.parsetfss.com/invalid-file-key/tfss-0a209bb7-8497-4e4f-8cdf-a5d4190a48c4-myTwins.jpg
/invalid-file-key/
URL 参数是缺少的成分,如果未提供文件密钥,Parse Server 会将其放置为默认占位符。在进行下面建议的更改后,相同的请求将 return 正确的 url 和 /invalid-file-key/
替换为您的 /actual File Key/。
要了解有关解析文件的更多信息,请参阅我的
解决方案:在 EB 环境中设置 FILE_KEY 属性 名称 属性 是正确的,但不幸的是,您您需要对 Parse Server 上的 index.js 文件进行额外的更改才能实际读取文件密钥 属性。有两种方法可以更新您的 Parse Server 应用程序。 Elastic Beanstalk 控制台或使用 Elastic Beanstalk CLI (EB CLI)。下面提供了两种解决方案:
将您的解析文件“文件密钥”添加到 AWS Elastic Beanstalk 上的现有解析服务器。
(Console) Update Application Version using the AWS Elastic Beanstalk Management Console:
此解决方案涉及下载 Parse Server 的现有 EB 应用程序版本(作为 .zip 存档),在本地修改 index.js 文件,将其压缩备份,最后将更改上传到同一应用程序版本页面作为应用程序的新版本。 下载并编辑当前的 Parse Server EB 应用程序版本:
- 打开 Elastic Beanstalk 控制台。
- 从区域列表中,select 包含您要使用的应用程序的区域。
- 在 Elastic Beanstalk 控制台应用程序页面中,单击要添加新应用程序版本的应用程序的名称。
在导航窗格中,单击“应用程序版本”。
单击源下的 .zip 文件 link 将应用程序下载到本地。
- 解压应用程序
- 编辑应用程序根目录中的 index.js 文件并添加以黄色突出显示的行。
- 保存 index.js 文件。
- 压缩应用程序(注意 仅压缩解压缩文件夹中的根对象,而不是包含对象的文件夹。)
上传 Parse Server 应用程序的新版本:
从您的 Parse Server 应用程序的应用程序版本 EB 页面,单击上传。
提供版本标签和说明,select 您更新的 .zip 应用程序并单击 上传。
这将上传您的应用程序的“新版本”,而之前的版本仍然是 运行ning。
部署 Parse Server 应用程序的新版本:
Select 新上传的版本并点击部署。
Select 您的环境,然后单击部署。
最后一步: 添加 FILE_KEY 环境 属性,如屏幕截图所示。单击应用。
如果您运行对此解决方案有任何问题,请遵循这些 EB 部署说明:http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/using-features.deployment.html
(CLI) Using the Elastic Beanstalk Command Line Interface (EB CLI):
此解决方案使用 EB CLI 下载、编辑和部署新版本的 Parse Server 应用程序。
- mkdir tmp-app-文件夹
- cd tmp-app-文件夹
- eb init(select 区域、应用程序和环境 运行 代码)
- eb labs download(从EB环境下载代码)
- 对 index.js 文件进行必要的更改
- eb 部署(应用重建)
- eb setenv FILE_KEY=(应用再次重建) 完成。
正在获取您的解析文件密钥: 可以从 Parse.com 控制台获取 Parse 托管文件密钥。 登录 Parse.com、select 您的应用程序并在应用程序设置 > 安全和密钥下复制 "File key"。 注意:Parse 使 "File Key" 仅在 "beta" 仪表板中可用。
我知道对于一个简单的解决方案来说,这似乎是一个冗长的说明细节,但它也应该有助于将来需要在其 Elastic Beanstalk 环境中更新其 Parse Server 应用程序的其他 Parse 开发人员。例如,如果您想 store files post-migration to your own S3 bucket
看来您在 index.js 文件中遗漏了 fileKey。
从解析仪表板获取文件密钥
转到您的 index.js 解析服务器文件并设置文件键值。
var api = new ParseServer({ 数据库URI:数据库URI || 'mongodb://localhost:27017/dev', appId: 'xxx', 客户端密钥:'xxx', 万能钥匙:'xxx', 文件键:'xxx' });