возможно ли создать и загрузить файл в s3?
Я пытался реализовать это приложение flask, но оно умирает с этой ошибкой:
OSError: [Errno 30] Read-only file system: '/report.csv'
Это my app.py:
@app.route("/upload/<string:START_REPORT>/<string:STOP_REPORT>/<string:IDS>/", methods=['POST'])
def upload(START_REPORT, STOP_REPORT, IDS):
"""
Function to upload a file to an S3 bucket
"""
os.environ["START_REPORT"] = START_REPORT
os.environ["STOP_REPORT"] = STOP_REPORT
os.environ["IDS"] = IDS
dft, filename = report_visit.report()
dft.to_csv(filename, index=False) # <-- Error here
object_name = filename
s3_client = boto3.client(
"s3",
region_name='eu-west-1',
endpoint_url="url",
aws_access_key_id="key",
aws_secret_access_key="key"
)
with open(filename, "rb") as f:
response = s3_client.upload_fileobj(f, app.config['UPLOAD_FOLDER'], f.filename)
return response
if __name__ == '__main__':
app.run (debug=True, port='8080', host='127.0.0.1')
, где имя файла 'report.csv'
Это запрос почты, который я делаю с почтальоном:
POST http://localhost:8080/upload/2020_2_10_0_0_0_0/2020_2_10_1_0_0_0/138/
Я думаю, что трудно привести правильный рабочий пример, но любые предложения приветствуются
функция report_visit.report()
возвращает pandas фрейм данных и имя файла
Любое предложение будет оценил, спасибо
Маттео