当前位置: 首页 > 面试题库 >

使用节点fs从AWS S3存储桶读取文件

施阳夏
2023-03-14
问题内容

我正在尝试使用AWS S3存储桶中的文件进行读取

fs.readFile(file, function (err, contents) {
  var myLines = contents.Body.toString().split('\n')
})

我已经能够使用节点aws-sdk下载和上传文件,但是我对如何简单地读取文件并解析内容感到困惑。

这是我从s3中读取文件的示例:

var s3 = new AWS.S3();
var params = {Bucket: 'myBucket', Key: 'myKey.csv'}
var s3file = s3.getObject(params)

问题答案:

您有两种选择。您可以包括一个回调作为第二个参数,该参数将与任何错误消息和对象一起调用。该示例直接来自AWS文档:

s3.getObject(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});

或者,您可以将输出转换为流。AWS文档中还有一个示例:

var s3 = new AWS.S3({apiVersion: '2006-03-01'});
var params = {Bucket: 'myBucket', Key: 'myImageFile.jpg'};
var file = require('fs').createWriteStream('/path/to/file.jpg');
s3.getObject(params).createReadStream().pipe(file);


 类似资料:
  • 我正在尝试使用读取aws s3存储桶中的文件 我已经能够使用节点aws-sdk下载和上传文件,但是我不知道如何简单地读取它并解析内容。 下面是我如何从s3读取文件的示例:

  • 我想读一本书的内容。存储在s3存储桶中的txt文件。 我试过: 但是我得到的s3file对象不包含文件的内容。 你知道该怎么做吗?

  • 我正在使用Spring引导连接到谷歌云存储。 我能够连接到一个文件,并从谷歌云存储桶中读取内容。 但是我不能得到谷歌云存储桶中所有文件的列表。 请帮帮我。 这很有效 这不工作。 有什么原因吗?

  • 问题内容: 我这样做是读取了S3存储桶中的文件名 现在,我需要获取文件的实际内容,类似于。什么是最好的方法? 问题答案: boto3提供了一种资源模型,该资源模型使诸如迭代对象之类的任务变得更加容易。不幸的是,StreamingBody不提供或。

  • 我正在尝试使用Node将文件从AWS S3存储桶复制到另一个存储桶。问题是,如果文件名没有空格,例如:“abc.csv”,它就可以正常工作。但如果我要复制到的文件名中有空格,例如:“abc xyz.csv”。它抛出了下面的错误。 “指定的密钥不存在。”“NoSuchKey:指定的密钥不存在。应请求。extractError(d:\Projects\Other\testproject\s3filet

  • 使用Boto3,python脚本从S3桶中下载文件以读取它们,并将下载文件的内容写入名为的文件。 我的问题是,一旦脚本使用AWS Lambda函数,它将如何以相同的方式工作?