Wagtail

Wagtail 使用 s3 存储不显示 icon

Wagtail 使用 S3 作为存储后端时,管理界面的 icon 图标不能正常显示。 这是因为 wagtail 使用了网络图标字体,而对象存储不允许从远端读取字体导致的。 解决方法一 在项目配置文件中找到 S3 存储的配置信息,添加以下配置后再重新执行 ./manage.py collectstatic。 AWS_HEADERS = { 'Access-Control-Allow-Origin': '*' } 这个方法是为每个上传到 S3 的对象设置一个专门的头记录,允许这个文件实现跨域访问。 解决方法二 这种方法是在平台上直接设置 CORS,不需要重新上传文件,立即生效,

  • Herald Yu
    Herald Yu
1 min read
Django

Django 为模型提供初始化数据

有些数据表需要硬编码数据,Django 既可以用 migration 实现,也可以用 fixtures 实现。感觉后者更方便些,只要准备一个符合格式的结构化文件即可 json、yaml 或 xml 几种常用格式都可以。 使用 dumpdata 导出 如果数据库已经写好了数据,可以用 python manage.py dumpdata 命令将其导出。 手写 fixture 文件 在项目应用中新建 fixtures 目录,创建 fixture

  • Herald Yu
    Herald Yu
1 min read
S3

s3cmd with s3-compatible OSS

S3cmd 是一款免费的命令行工具和客户端,用来上传、下载和管理亚马逊 S3 对象存储以及其他兼容 S3 协议的对象存储(例如 Google Cloud Storage、DreamHost DreamObjects)上的数据。 由于它是命令行下的程序,因此更适合对命令行比较熟悉的用户使用。结合 cron 计划任务,s3cmd 也是理想的自动化备份数据到 s3 的脚本方案。 S3cmd 用 Python 语言写成,采用 GNU Public License v2

  • Herald Yu
    Herald Yu
2 min read
Python

Backblaze B2 Bucket 文件和容量统计

Backblaze B2 是眼下性价比最高的对象存储,结合 restic 加密备份工具,就可以非常低成本的实现数据安全冗余。 只是 B2 存储的 API 真是不够实在,除了常规的文件查看、上传和下载等基本操作以外,没有提供任何消费查询和用量统计的接口。 不提供就不提供吧,只要有列出文件的接口,并且能返回每个文件的尺寸信息就够了,起码可以自己累加计算。只是这样要多次发送请求才能得到最终的结果,真不节能。 import requests import base64 import json def b2_auth(): # 身份认证,获取认证 Token。

  • Herald Yu
    Herald Yu
2 min read
Python

Python 读取照片拍摄时间信息

之前的笔记 Python 照片批量重命名 记录了使用 exifread 包读取照片 EXIF 信息以及批量重命名文件的脚本。实际使用下来发现很多照片的拍摄日期信息无法获取。 看到很多人介绍使用 PIL,但看到项目主页最版新只支持到 Python 2.6,后来才发现已经有人创建了新分支 Pillow,实测支持 Python 3.7.0。这个库功能非常丰富,可以对照片做非常专业的处理,读取 EXIF 信息确实有些杀鸡用牛刀,但它实在简单好用。 安装 Pillow $ pipenv install pillow

  • Herald Yu
    Herald Yu
2 min read

Subscribe to Herald's Tech Notes