【发布时间】:2018-02-06 19:33:37
【问题描述】:
我有以下 python 脚本,它从 S3 兼容服务下载两个文件。然后合并它们并将输出上传到另一个存储桶。
import time
import boto3
import pandas as pd
timestamp = int(time.time())
conn = boto3.client('s3')
conn.download_file('segment', 'segment.csv', 'segment.csv')
conn.download_file('payment', 'payments.csv', 'payments.csv')
paymentsfile = 'payments.csv'
segmentsfile = 'segment.csv'
outputfile = 'payments_merged_' + str(timestamp) + '.csv'
csv_payments = pd.read_csv(paymentsfile, dtype={'ID': float})
csv_segments = pd.read_csv(segmentsfile, dtype={'ID': float})
csv_payments = csv_payments.merge(csv_segments, on='ID')
open(outputfile, 'a').close()
csv_payments.to_csv(outputfile)
conn.upload_file(outputfile, backup, outputfile)
但是,如果我执行脚本,它会将文件存储在我的脚本文件夹中。出于安全原因,我想防止这种情况发生。我可以在脚本执行后删除文件,但假设我的脚本位于文件夹/app/script/ 中。这意味着在短时间内,当脚本正在执行时,有人可以打开 url example.com/app/script/payments.csv 并下载文件。有什么好的解决方案?
【问题讨论】:
标签: python web-services amazon-s3 web-applications boto3