我有一个连接到Amazon S3的Parse Server。 有时,图片已成功上传从我的应用程序到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/*"
]
}
]
}
APP运输安全可能性
我的另一个想法是,它可能与Apple强制执行的App Transport Security有关。由于我还没有为HTTPS设置SSL,我必须在我的PLIST中免除sample.elasticbeanstalk.com网址。也许在使用S3适配器时,它会转到与sample.elasticbeanstalk.com不同的URL,我也需要在PLIST中免除。如果重要的话,我的S3适配器会设置Direct Access == true。由于我的iOS应用程序中没有出现App Transport Security错误,因此可能并非如此。只是一个想法。
在保存触发器之前
我在上传图片的对象上有一个保存触发器。我的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"
为什么图片太大而无法上传?我该如何克服这个问题?
问题
知道问题是什么吗?。谢谢!
答案 0 :(得分:0)
你现在可能已经解决了这个问题......然而,正如你已经提到的那样 - 很可能它与提供的Elastic Beanstalk日志有关。虽然我无法与有关套接字问题的错误日志相关,但几天前我几乎遇到了迁移我的ex-Parse托管应用程序的相同问题。
问题是Elastic Beanstalk上的(nginx)环境配置,它默认情况下只允许/处理最大大小约1 MB的文件(只是我自己的估计,因为你无法从AWS端获得关于它的可靠和一致的信息)。
但是:您可以通过在.config文件中添加以下行来克服此限制(如果存在,否则在您的Parse Server中创建一个新文件,例如' app.config') .ebextensions-directory(如果存在,否则在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实例时,可以将其设置为param / option。)。
希望我能帮助别人:)
/米