Spaces:
Sleeping
Sleeping
| from flask import Flask, request, send_file, abort | |
| import requests | |
| import io | |
| app = Flask(__name__) | |
| def download_file(): | |
| # クエリパラメータからファイルIDを受け取る | |
| file_id = request.args.get('file_id') | |
| filename = request.args.get('filename', 'downloaded_file') | |
| if not file_id: | |
| return abort(400, description="file_idパラメータが必要です") | |
| # Google DriveのダウンロードURL | |
| url = f"https://drive.google.com/uc?export=download&id={file_id}" | |
| response = requests.get(url) | |
| if response.status_code == 200: | |
| # レスポンス内容をメモリ上のファイルにする | |
| file_stream = io.BytesIO(response.content) | |
| return send_file( | |
| file_stream, | |
| as_attachment=True, | |
| download_name=filename | |
| ) | |
| else: | |
| return abort(response.status_code, description="ファイルの取得に失敗しました") | |
| if __name__ == '__main__': | |
| app.run(host='0.0.0.0', port=7860, debug=True) | |