2017-09-16 67 views
0

我需要部署一個lambda函數加載在S3文件,在此期間我只是工作,我的本地環境,這裏是我的代碼:的Python 3 boto3加載文件到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) 

在我的代碼一切的結束似乎無縫地執行,但是當我去我的S3存儲的文件有沒有數據:

enter image description here

從我的本地庫文件是不是空:

enter image description here

難道你們能幫我理解爲什麼不用數據加載文件,也幫我弄明白了嗎?

感謝這麼多

+0

沒有數據看我的帖子!謝謝 –

回答

0

最後,我想通了我的問題是,我沒有送數據作爲參數,我查詢到的文件加載與信息。

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) 

謝謝大家。