2017-09-16 5 views
0

Ich brauche eine Lambda-Funktion zu implementieren, eine Datei in S3 zu laden, in einem inzwischen nur zu meinem lokalen Umfeld ich arbeite und hier ist mein Code:Python 3 boto3 Laden von Dateien auf S3 AWS

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) 

am Ende meines Codes scheint alles reibungslos ausgeführt werden, aber wenn ich zu meinem S3 Eimer gehe die Datei dort ohne Daten:

enter image description here

die Datei von meinem lokalen Repository ist es nicht leer:

Können Sie mir helfen zu verstehen, warum es die Datei nicht mit Daten lädt und mir auch hilft, es herauszufinden?

Vielen Dank

+0

nicht Daten haben Blick auf meine Post! Vielen Dank –

Antwort

0

Endlich, dachte ich, es war mein Problem, dass ich nicht die Körper Daten als Parameter in meiner Abfrage, um die Datei mit Informationen zu laden sendete.

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) 

Danke an alle.

Verwandte Themen