ich hab dank euch schon wieder sehr viele Fortschritte gemacht.
Habe meine Flask APP nun von sqlite auf postgtresql geändert und will bei heroku hochladen, jedoch werden bei heroku große Datenmängen nicht gespeichert, zumindest wird von denen vorgeschlagen Amazon S3 zu benutzen und die static Dateien in einem Bucket zu speichern.
Benutzer dürfen bei mir Bilder hochladen, in der DB wird nur der Pfad zum Bild gespeichert, ich speichere diese Bilder in einem static Ordner, der userimg heißt.
Nun wollte ich mit Hilfe von Flask-S3 die Bilder auf meinem Bucket bei Amazon S3 speichern.
Flask-S3: https://flask-s3.readthedocs.io/en/latest/
Ich habe alles befolgt und in meiner main.py folgenden Code eingefügt:
Code: Alles auswählen
s3 = FlaskS3(app)
s3.init_app(app)
Code: Alles auswählen
def upload_all():
create_all(app, user=app.config['MY_AWS_ID'], password=app.config['MY_AWS_SECRET'], bucket_name=app.config['FLASKS3_BUCKET_NAME'])
Code: Alles auswählen
FLASKS3_BUCKET_NAME = "My_Bucketname"
MY_AWS_ID = "My_ID"
MY_AWS_SECRET = "My_Secret_Key"
Wenn ich upload_all hier benutze gibt es einen UnicodeError, der aber wie es scheint von dem Linknamen verursacht wird, der aber vom Flask-S3 package kommt?:
Code: Alles auswählen
if __name__ == "__main__":
app.debug = True
upload_all()
app.run()
Code: Alles auswählen
Traceback (most recent call last):
File "C:\Users\User\Eclipse-Workspace\Monteurzimmer\main.py", line 685, in <module>
upload_all()
File "C:\Users\User\Eclipse-Workspace\Monteurzimmer\main.py", line 681, in upload_all
create_all(app, user=app.config['MY_AWS_ID'], password=app.config['MY_AWS_SECRET'])
File "C:\Python27\lib\site-packages\flask_s3.py", line 410, in create_all
filepath_filter_regex=filepath_filter_regex)
File "C:\Python27\lib\site-packages\flask_s3.py", line 177, in _gather_files
dirs = [(six.u(app.static_folder), app.static_url_path)]
File "C:\Python27\lib\site-packages\six.py", line 647, in u
return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape")
UnicodeDecodeError: 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
Von
Code: Alles auswählen
UPLOAD_FOLDER = "static/userimg/"
Code: Alles auswählen
UPLOAD_FOLDER = 'http://My_Bucketname.aws.amazon.com/'
Code: Alles auswählen
IOError: [Errno 22] invalid mode ('wb') or filename: 'http://My_Bucketname.aws.amazon.com/best-western-atrium-zimmer01.jpg'