从Amazon s3存储桶中提取文件时,随机ssl握手失败

时间:2018-08-21 01:54:33

标签: amazon-web-services ssl amazon-s3 handshake

我在节点应用程序中有一个特定的提取请求,该请求仅从S3存储桶中提取json文件并将内容存储在应用程序状态内。

提取请求在99%的时间内都有效,但是由于某种原因,大约每4或5天,我会收到一条通知,指出该应用已崩溃,而当我进行调查时,原因始终是ssl handshake failure造成的。

我试图弄清楚为什么会发生这种情况,以及在将来的情况下可以防止这种情况发生的解决方法。

获取请求如下所示,并且被称为新访问该网站的任何人。一旦发出请求,并且json现在处于应用程序状态,该请求将不再被调用。

function grabPreParsedContentFromS3 (prefix, callback) {
   fetch(`https://s3-ap-southeast-2.amazonaws.com/my-bucket/${prefix}.json`)
     .then(res => res.json())
     .then(res => callback(res[prefix]))
     .catch(e => console.log('Error fetching data from s3: ', e))

 }

发生此错误时,将抛出.catch方法并抛出以下错误消息:

Error fetching data from s3:  {
   FetchError: request to https://s3-ap-southeast-2.amazonaws.com/my-bucket/services.json failed,
   reason: write EPROTO 139797093521280:error:1409E0E5:SSL routines:ssl3_write_bytes:ssl handshake failure:../deps/openssl/openssl/ssl/s3_pkt.c:659:
   ...
 }

有人曾经遇到过这种问题吗?或者不知道为什么会发生这种情况吗?目前,我想知道是否可以限制一次发出的S3请求的数量,这导致它失败?但是该网站也不是很受欢迎,要请求获取大量内容。

0 个答案:

没有答案