繁体   English   中英

Python 3 boto3将文件加载到S3 AWS

[英]Python 3 boto3 loading files to S3 AWS

我需要部署Lambda函数以在S3中加载文件,与此同时,我只在本地环境中工作,这是我的代码:

import boto3
from botocore.client import Config

ACCESS_KEY_ID = 'xxxx'
ACCESS_SECRET_KEY = 'xxxxx'
BUCKET_NAME = 'biximontreal'

s3 = boto3.resource(
    's3',
    aws_access_key_id=ACCESS_KEY_ID,
    aws_secret_access_key=ACCESS_SECRET_KEY,
    config=Config(signature_version='s3v4')
)


for bucket in s3.buckets.all():
    print(bucket.name)

FILE_NAME = 'Bixi_9_16_14-38.json'
s3_client = boto3.client('s3')
s3_client.upload_file(FILE_NAME, BUCKET_NAME, FILE_NAME)

在我的代码末尾,所有内容似乎都可以无缝执行,但是当我进入S3存储桶时,文件中没有数据:

在此处输入图片说明

我本地存储库中的文件不为空:

在此处输入图片说明

你们可以帮助我理解为什么它不向文件中加载数据,还可以帮助我弄清楚吗?

非常感谢

最终,我发现了我的问题是我没有在查询中将正文数据作为参数发送给信息加载文件。

x = 'x'
x = 'x'
BUCKET_NAME = 'x'

s3 = boto3.resource(
    's3',
    aws_access_key_id=x,
    aws_secret_access_key=x,
    config=Config(signature_version='s3v4')
)


filename = 'Bixi_%s_%s_%s-%s.json' % (month, day, hour, mins)
datafile = open('/tmp/Bixi_%s_%s_%s-%s.json' % (month, day, hour, mins),'rb')

s3.Bucket(BUCKET_NAME).put_object(Key=filename, Body=datafile)

感谢大家。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM