最近公司想將windows本地的文件上傳到AWS的S3桶當中。然后將S3當中的數據copy到具體的表當中。
#!/usr/bin/python
# coding:utf-8
import boto3
import glob
from datetime import datetime
AWS_KEY = "S3的秘鑰"
AWS_SECRET = "S3的密匙"
bucket_name = "桶的名稱"
path = datetime.now().strftime("%Y%m%d/") #這里是按天對文件進行存儲
print(path)
session = boto3.Session(aws_access_key_id=AWS_KEY, aws_secret_access_key=AWS_SECRET, region_name='cn-north-1')
s3 = session.client("s3")
numbers = [x for x in range(0,20000,500)]
to_upload = glob.glob('E:\\uploadfile\\*.json') #這里只獲取以json結尾的文件
# file_name:本地文件名
# upload_key:上傳到s3存儲桶的文件名
# bucket:存儲桶名
file_name=r"E:\uploadfile\a.txt"
for n, file_path in enumerate(to_upload):
print(file_path)
upload_key = file_path.split('\\')[-1]
s3.upload_file(Filename=file_path, Key=path+upload_key, Bucket=bucket_name)
if n in numbers:
print(n)
這里是輪訓的將文件夾下面的文件放入到對應的桶當中。你可以自由的定義你想要放的文件路徑,你也可以將文件夾下面的某一類文件進行上傳操作。