如何读写位于S3存储桶上的.txt文件?

时间:2019-08-07 19:14:04

标签: node.js amazon-web-services rest amazon-s3 aws-lambda

我遇到一个挑战,要求我用下一个质数更新.txt文件中的数字。问题在于它必须在s3存储桶中进行更新,而我真的不知道如何使用nodeJS在s3中的文件内部进行读写。我正在使用Lambda函数来做到这一点。

我试图在AWS开发工具包S3文档中进行搜索,以获得一些输入,但没有成功。我是云新手,所以我很难理解一些 概念。

我使用fs读取/写入本地文件:

function (doc) {
  if (doc.verse) {
    var idx = doc.numBook+("0000" + doc.ch).slice(-4)+("0000" + doc.vn).slice(-4);
    emit(idx, doc._id);
  }
  return 
}

2 个答案:

答案 0 :(得分:2)

您无法就地更新S3对象。您必须替换整个对象。为此,请使用putObject

答案 1 :(得分:0)

尝试此操作以写入txt文件

import boto3

def lambda_handler(event, context):
    string = "Hello world"
    encoded_string = string.encode("utf-8")

    bucket_name = "s3bucketName"
    file_name = "abc.txt"
    lambda_path = "/tmp/" + file_name
    s3_path = "pathToFileName/" + file_name

    s3 = boto3.resource("s3")
    s3.Bucket(bucket_name).put_object(Key=s3_path, Body=encoded_string)

要从txt读取数据,您可以使用此

with open(filename) as f:
    string = f.read()

encoded_string = string.encode("utf-8")
print(encoded_string )