django项目的Apiqa用户存储后端

apiqa-storage的Python项目详细描述


apiqa存储

这个项目的目标是在minio上提供用户存储后端 所有apiqa django项目。在

豪图

  • apiqa-storage添加到requirements.txt。在
# Minio file storage
git+https://github.com/pik-software/apiqa-storage.git#egg=apiqa-storage
  • apiqa_storage添加到设置文件中的INSTALLED_APPS。在
^{pr2}$
  • 将mixinModelWithAttachmentsMixin添加到任何模型。进行并运行迁移。在
fromapiqa_storage.modelsimportModelWithAttachmentsMixinclassUserFile(ModelWithAttachmentsMixin,...):...
  • 在开头添加序列化程序mixin并添加attachmentsattachment_ids到字段。在
fromapiqa_storage.serializersimportAttachmentsSerializerMixinclassModelWithAttachmentsSerializer(AttachmentsSerializerMixin,...):...classMeta:...fields=(...,'attachments','attachment_ids')
  • 向urlpatterns添加下载和上传文件url。在
fromdjango.urlsimportpath,includeurlpatterns=[path('attachments/',include('apiqa_storage.urls')),]
  • 或者将员工下载文件url添加到urlpatterns。在
fromdjango.urlsimportpath,includeurlpatterns=[# noqapath('attachments/',include('apiqa_storage.staff_urls')),]
  • 添加清理文件任务到芹菜节拍配置。在
fromcelery.schedulesimportcrontabbeat_schedule={# apiqa-storage clean files'purge_attachments':{'task':'apiqa_storage.tasks.purge_attachments','schedule':crontab(hour=5)},}
MINIO_STORAGE_ENDPOINT='minio:9000'MINIO_STORAGE_ACCESS_KEY=...MINIO_STORAGE_SECRET_KEY=...MINIO_STORAGE_BUCKET_NAME='local-static'
  • 其他设置

    • MINIO_STORAGE_MAX_FILE_SIZE:上传的文件大小限制,人性化值。 见https://humanfriendly.readthedocs.io/en/latest/readme.html#a-note-about-size-units。默认100米
    • MINIO_STORAGE_MAX_FILE_NAME_LEN:文件名长度限制。用于数据库字符限制。默认值100
    • MINIO_STORAGE_MAX_FILES_COUNT:一个对象中的文件数限制。例如票据中有5个文件。无-是无限的。默认无
    • MINIO_STORAGE_USE_HTTPS:使用HTTPS连接到MINIO。默认为False
    • MINIO_STORAGE_CLEAN_PERIOD:删除N天后没有相关对象的文件。默认值30
  • 运行测试

pip install -r requirements.txt
pip install -r requirements.dev.txt
docker-compose up
pytest --cov .

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在java中调用Paint组件方法   多层次POM中的java覆盖依赖项/插件管理   java模式识别   JavaSpringMVC+Log4j2定义了Log4j2。未标识非类路径位置中的属性文件   java我们如何将IntelliJ IDEA中的maven和gradle项目与源代码浏览支持集成?   Maven mvn exec:java在Windows上工作,但不是Ubuntu 20   java在Jaxb2Marshaller上使用带有packagesToScan属性的JAXBElement时没有端点适配器   java删除方法和节点   java如何为某些场景创建正则表达式模式   java如何通过gridView中的intent()传递ArrayList数据。setOnItemClickListener()   java UnsupportedClassVersionError 1.7/1.5   java为什么JVM参数是http。tomcat servlet没有使用proxyHost?   java将ArrayList从字母顺序排序到最频繁/最不频繁   java动态字段列表迭代   java如何将字节转换为位?   hadoop java。mapreduce作业中的lang.NullPointerException   javasocketIO无法与Android中的LocationListener一起使用   java在卸载时清除内部存储   java池回收错误2个精灵同时碰撞到一个精灵