ラムダ関数を使用してS3にファイルを書き込もうとしましたが、テストは「成功」を示しましたが、S3バケットには何も表示されませんでした。どうした?誰も私にいくつかのアドバイスや解決策を与えることができますか?どうもありがとう。これが私のコードです。
import json
import boto3
def lambda_handler(event, context):
string = "dfghj"
file_name = "hello.txt"
lambda_path = "/tmp/" + file_name
s3_path = "/100001/20180223/" + file_name
with open(lambda_path, 'w+') as file:
file.write(string)
file.close()
s3 = boto3.resource('s3')
s3.meta.client.upload_file(lambda_path, 's3bucket', s3_path)
S3へのデータのストリーミングに成功しました。これを行うにはエンコードする必要があります。
import boto3
def lambda_handler(event, context):
string = "dfghj"
encoded_string = string.encode("utf-8")
bucket_name = "s3bucket"
file_name = "hello.txt"
lambda_path = "/tmp/" + file_name
s3_path = "/100001/20180223/" + file_name
s3 = boto3.resource("s3")
s3.Bucket(bucket_name).put_object(Key=s3_path, Body=encoded_string)
データがファイル内にある場合、このファイルを読み取って送信できます。
with open(filename) as f:
string = f.read()
encoded_string = string.encode("utf-8")