用于允许将文件和图像上载到flask admin中的amazon s3(以及默认本地存储)的字段类型。
flask-admin-s3-upload的Python项目详细描述
用于允许将文件和图像上载到flask admin中的amazon s3(以及默认本地存储)的字段类型。
示例
对于一个完整的、工作的flask应用程序,它演示了flask-admin-s3-upload的实际操作,请查看flask-s3-save-example。
用法
通过重写字段类型并向这些字段传递特殊参数,与Flask管理模型视图一起使用:
fromflask.ext.admin.contrib.sqlaimportModelViewclassMyView(ModelView):form_overrides=dict(some_image=S3ImageUploadField,some_file=S3FileUploadField)form_args=dict(some_image=dict(base_path='/some/folder/static',relative_path='some_image/',url_relative_path='uploads/',namegen=your_namegen_func_here,storage_type_field='some_image_storage_type',bucket_name_field='some_image_storage_bucket_name',),some_file=dict(base_path='/some/folder/static',relative_path='some_file/',namegen=your_namegen_func_here,allowed_extensions=('pdf','txt'),storage_type_field='some_file_storage_type',bucket_name_field='some_file_storage_bucket_name',))defscaffold_form(self):# Note: assuming that we have Flask-S3 config values to pass# to fields below. Flask-S3 is not required, you can pass# values from elsewhere if you want.fromflaskimportcurrent_appasappform_class=super(MyView,self).scaffold_form()static_root_parent='/some/folder'ifapp.config['USE_S3']:form_class.some_image.kwargs['storage_type']='s3'form_class.some_file.kwargs['storage_type']='s3'form_class.some_image.kwargs['bucket_name']=app.config['S3_BUCKET_NAME']form_class.some_image.kwargs['access_key_id']=app.config['AWS_ACCESS_KEY_ID']form_class.some_image.kwargs['access_key_secret']=app.config['AWS_SECRET_ACCESS_KEY']form_class.some_image.kwargs['static_root_parent']=static_root_parentform_class.some_file.kwargs['bucket_name']=app.config['S3_BUCKET_NAME']form_class.some_file.kwargs['access_key_id']=app.config['AWS_ACCESS_KEY_ID']form_class.some_file.kwargs['access_key_secret']=app.config['AWS_SECRET_ACCESS_KEY']form_class.some_file.kwargs['static_root_parent']=static_root_parentreturnform_class