現在、すべての静的ファイルを S3 に移動し、サイトにいくつかの画像をアップロードできるようにしています。一般的に、これは素晴らしく進んでいます。既存のすべての css および js ファイルを問題なく S3 まで取得しましたが、画像をアップロードして S3 に保存するのに問題があります。
具体的には、ビュー内でファイルのアップロードを処理する方法は次のとおりです。
image_file = request.files["imageurl"]
if image_file and allowed_file(image_file.filename):
fn = "products/%s" % secure_filename(image_title + "." + image_file.filename.split(".")[-1])
image_file.save(url_for('static', filename=fn))
else:
response = app.make_response(render_template(
'admin/newImage.html',
title=title,
error="That Image file is invalid.")
)
return response
これはすべて、POST 要求ハンドラーでラップされています。ここでの問題はurl_for('static')
、正しいパスへのリンクに失敗することです。そのIOError
ため、このような画像を保存しようとするたびにエラーが発生します。
通常、私は自分のディレクトリ構造でばかげたことをしているだけだと思いますが、同じパターンがurl_for
静的ディレクトリ内のファイルに対して完全に機能します。これを修正する方法についてのアイデアはありますか?これが私のディレクトリ構造です(表示用にトリミングされています)
├── SpoolEngine
│ ├── admin.py
│ ├── __init__.py
│ ├── templates
│ │ ├── admin
│ │ │ ├── base.html
│ │ ├── base.html
│ │ ├── _forms.html
│ │ ├── posts
│ │ │ ├── complete.html
│ │ └── super_user
│ │ ├── base.html
│ ├── users.py
│ └── views.py
└── static
├── css
│ ├── admin.css
│ └── zebraTable.css
├── img
│ └── subtle_grunge.png
├── js
│ ├── compatibility.js
│ ├── list.js
│ ├── login.js
│ └── profiler.js
└── products
参考までに、url_for は完全に動作し、 Any idea?/static/css
の間違った URL にリンクしています。admin.py