首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从s3 Node.js读取文本文件-开头缺少某些部分

从s3 Node.js读取文本文件-开头缺少某些部分
EN

Stack Overflow用户
提问于 2021-07-27 14:43:17
回答 1查看 119关注 0票数 0

我是亚马逊网络服务和Node.js的新手。我将一个224x224x3数组写入一个文本文件,并将其保存在一个s3存储桶中。我需要在另一个用Node.js编写的lambda函数中读取该文本文件,并将该数组赋给一个变量。但似乎有时数组的某些部分在一开始就遗漏了。

下面是我用来将数组存储到文本文件中的Python代码。请注意,returnArr是一个224x224x3的列表。

代码语言:javascript
运行
复制
with open("/tmp/out.txt", "w") as file:
     file.write(str(returnArr))
     file.close()
s3 = boto3.resource('s3')
BUCKET = "tempimagebucket1"
s3.Bucket(BUCKET).upload_file("/tmp/out.txt", "out.txt")

下面是我用来读取存储在文本文件中的数组的Node.js代码。

代码语言:javascript
运行
复制
const AWS = require('aws-sdk');
var s3 = new AWS.S3();
exports.handler = async (event, ctx, callback) => {
     var params1 = {Bucket: 'tempimagebucket1', Key: 'out.txt'};
     await s3.getObject(params1 , function (err, data1) {
       if (err) {
          console.log(err);
       } else {
          console.log("array : ",data1.Body.toString()); //Line 1
          img = data1.Body.toString();
       }
    }).promise(); 
}

问题-有时第一行给出一个不完整的数组(数组的某些部分在开始时遗漏了)。

有时它会成功地给出完整的数组。

请注意,文本文件中存储的数组始终是完整的。所以问题应该出在Node.js Lambda函数中。

下面是一些不完整的输出(第1行输出)。

读取数组在不同的时间是不同的。

数组: 57,27],92,43,13,89,41,11,90,43,14,89,44,18,79,37,15,59,26,8,48,27,11,111,66,33,118,77,40...

数组: 72],164,120,73,153,105,61,140,89,44,142,91,43,156,107,60,156,108,62,164,116,69,171,123,77,161,112,67,160,111,67...

但是它应该像下面这样-输出应该是一个完整的3d数组

数组:[107,90,72,96,79,62,86,69,52,59,43,28,43,26,15,50,32,20,58,38,21,77,46,25,81,50,22,96,65,39...

我想不出是什么原因。有人能帮帮我吗?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2021-07-27 16:36:03

您的函数和测试文件是正确的。然而,我明白你所说的错过开头的意思:

这只是控制台修剪输出。您可以按Load more,您将看到全文:

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68540093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档