我遇到一个挑战,要求我用下一个质数更新.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
}
答案 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 )