仅有时解析服务器 S3 图像上传 - 套接字问题
Posted
技术标签:
【中文标题】仅有时解析服务器 S3 图像上传 - 套接字问题【英文标题】:Parse Server S3 Images Upload Only Sometimes - Socket Issue 【发布时间】:2017-01-05 20:22:56 【问题描述】:我有一个连接到 Amazon S3 的 Parse 服务器。 有时,图像会成功上传从我的应用程序到 S3。我可以毫无问题地把它们拉下来。 但是,有时图像无法上传到 S3。 在我的 ios 应用中,当应用尝试上传图像时出现以下错误:
还有这个:
这是我的解析服务器初始化:
政策问题的可能性
我不确定发生了什么。 我认为这可能与 S3 策略有关。我根据this制定了我的政策。该政策如下所示:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Action": [
"s3:*"
],
"Resource": [
"arn:aws:s3:::BUCKET_NAME",
"arn:aws:s3:::BUCKET_NAME/*"
]
]
应用程序传输安全可能性
我的另一个想法是,它可能与 Apple 强制执行的 App Transport Security 有关。由于我还没有为 HTTPS 设置 SSL,我必须在我的 PLIST 中免除 sample.elasticbeanstalk.com URL。也许在使用 S3 适配器时,它会转到与 sample.elasticbeanstalk.com 不同的 URL,我还需要在 PLIST 中排除该 URL。如果这很重要,我的 S3 适配器确实设置了 Direct Access == true。由于我的 iOS 应用程序中没有出现应用程序传输安全错误,因此可能不是这样。只是一个想法。
保存触发器之前
我在为其上传图片的对象上有一个保存前触发器。我的 beforeSave 触发器中没有一个 console.logs 在它无法上传时写入它,所以我认为问题不在于这里,尽管它可能。
最可能的错误来源
我的 Elastic Beanstalk 日志反复声明:
2017/01/05 18:11:35 [错误] 6993#0: *16609 客户端打算发送太大的正文:3803408 字节,客户端:,服务器:,请求:“POST /parse/files/image. png HTTP/1.1",主机:"name.elasticbeanstalk.com"
为什么图片会太大而无法上传?我该如何克服这个问题?
问题
知道问题出在哪里吗?。谢谢!
【问题讨论】:
【参考方案1】:您现在可能已经解决了这个问题...不过,正如您已经提到的 - 很可能与提供的 Elastic Beanstalk 日志有关。虽然我无法与有关套接字问题的错误日志联系起来,但几天前我几乎遇到了迁移我的前 Parse 托管应用程序的相同问题。
问题是 Elastic Beanstalk 上的 (nginx) 环境配置,默认情况下它只允许/处理最大大小约为 1 MB 的文件(只是我自己的估计,因为您无法从 AWS 方面获得可靠且一致的信息)。
但是:您可以通过将以下行添加到 Parse Server 的 .ebextensions 目录中的 .config 文件(如果存在,否则创建一个新文件,例如“app.config”)来克服此限制(如果存在,否则在 Parse Server 目录的最顶部位置创建一个目录 namend '.ebextensions'):
files:
/etc/nginx/conf.d/proxy.conf:
content: |
client_max_body_size 10M;
本示例中的“10M”代表 10 MB 的大小 - 根据您的要求进行调整(但请记住,Parse Server 也定义了文件的最大大小 - 不是 100%,但我认为它是默认为 20 或 25 MB。您可以在 index.js 中初始化 Parse Server 实例时将其设置为参数/选项。)。
希望我能帮助别人:)
/m
【讨论】:
我不久前做过,它解决了 AWS EB 文件大小限制的问题。但是 Parse Server 对文件大小也有自己的限制,我没有克服,只是接受了。以上是关于仅有时解析服务器 S3 图像上传 - 套接字问题的主要内容,如果未能解决你的问题,请参考以下文章