Я пытаюсь создать метод Flask POST для загрузки файла в мой s3 Bucket в python:
Вот код, который я пытаюсь сделать:
from flask import Flask, redirect, url_for,render_template, request, jsonify
import flask
import boto3
from flask_cors import CORS
import os
import pandas as pd
s3 = boto3.client('s3')
UPLOAD_FOLDER = 'path_folder'
app = flask.Flask(__name__)
app.config["DEBUG"] = False
app.config['UPLOAD_FOLDER'] = UPLOAD_FOLDER
CORS(app)
@app.route('/postsqlData/subsytem_upload/', methods=['POST'])
def upload_file():
df = pd.DataFrame(os.listdir(UPLOAD_FOLDER),columns=['Paths'])
bucket_name = "name"
for i in range(len(df)):
filename1 = str(df['Paths'].iloc[i])
print(filename1)
fileSize = os.path.getsize(filename1)
print(fileSize)
s3.upload_file(filename1, bucket_name,'test/{}'.format(filename1))
print("Added")
return "completeed"
app.run(host='0.0.0.0')
При этом выдается следующая ошибка:
Трассировка (последний последний вызов):
Файл "C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask \ app .py ", строка 2446, в ответе wsgi_app = self.full_dispatch_request ()
Файл" C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1951, в full_dispatch_request rv = self.handle_user_exception (e)
Файл "C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask_cors \ extension.py", строка 161, в функции wrapped_function возвращает cors_after_request (app.make_response (f (* args, ** kwargs)))
Файл "C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask \ app.py", строка 1820, в ререйзе handle_user_exception (exc_type, exc_value, tb)
Файл "C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask_compat.py", строка 39, в значении повышения рейза
Файл "C: \ Users \ admi n \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1949, в full_dispatch_request rv = self.dispatch_request ()
Файл" C: \ Users \ admin \ Anaconda3 \ lib \ site-packages \ flask \ app.py ", строка 1935, в dispatch_request возвращает self.view_functionsrule.endpoint
Файл" s3_test.py ", строка 30, в upload_file
fileSize = os.path.getsize (filename1)
Файл "C: \ Users \ admin \ Anaconda3 \ lib \ genericpath.py", строка 50, в getize return os.stat (filename) .st_size
FileNotFoundError: [WinError 2] Системе не удается найти указанный файл : 'data.xlsx'
Если я запускаю этот код индивидуально, т.е. построчно. Скрипт успешно выполняется и загружает файлы в корзину s3. Но он не запускается, когда я использую почтовый метод. Как я могу решить это?
Заранее спасибо