S3

A collection of 10 posts
Docker

docker 映射 fuse 类型的存储目录

尝试使用rclone的mount挂载s3对象存储到本地,想把挂载以后的目录映射给docker容器使用,但在创建容器的时候会报错: docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /path/to/you. 解决办法是启用fuse的allow_other选项,编辑配置文件/etc/fuse.conf,删掉 user_allow_other前面的#号,启用这个功能。 然后重新挂载s3存储,添加 -o allow_other 参数: $ rclone mount minio:memory /mnt/s3 --allow-other 重启容器即可 Reference
1 min read
Wagtail

Wagtail/Django 使用 S3-like 对象存储

本地开发使用 django 自带的服务器,静态文件直接在项目目录中托管。一旦要往生产环境部署时,就会发现必须为前端静态文件和其他媒体文件配置一个单独的存储后端,Django 说它不管这事儿。 存储后端可以直接在服务器上配置一个静态服务器,也可以直接使用 AWS S3 之类的对象存储,这里主要记录对象存储后端的配置方法。 对于 wagtail 来说,使用对象存储并不能让网站程序完全减负,很多对图片和文档的操作需要先将文件从对象存储取回到服务器的内存中,处理好以后再返回给访问者。Anyway,对象存储可以分担带宽,总之利大于弊。 第一步 安装存储管理相关的包 使用 django-storages 管理存储后端,使用 boto3 实现 s3-like 对象存储的管理。 $ pipenv install django-storages boto3 将包信息写入 requirements.txt 文件: $ pip freeze > requirements.txt 第二步 启用 storages 模块 编辑
2 min read
Backup

Restic 配置 S3 仓库

restic 是一款 go 语言开发的开源文件加密备份工具,特点是能够将文件以快照的形式增量备份到指定的存储设备,支持本地硬盘存储、也支持远程服务器或主流的对象存储。本文参考 Setting up restic with Amazon S3 编写,通过恰当的配置,将 s3 或 s3 兼容的对象存储作为默认的 restic 仓库。 安装 restic restic 已经被纳入各大主流 Linux 发行版的软件仓库,你可以试着用包管理器搜索/安装 restic,windows 系统可以使用 scoop 进行安装。 也可以直接到项目主页下载对应架构的预编译二进制文件,解压放到系统的可执行路径上并赋予执行权限即可。 可以查阅官方文档获得更详尽的安装说明 准备对象存储 S3、阿里云 OSS、腾讯云 COS、Backblaze B2、Wasabi 这些都可以作为 restic
2 min read
OSS

Wasabi 对象存储计费方式

Wasabi 是兼容 S3 接口的对象存储服务,价格和 Backblaze B2 有的一拼。 看了一下 Wasabi 的官方计费说明,简单记录一下它的计费方式。 API 请求免费 这是 Wasabi 主要宣传点,因为几乎所有的对象存储都要对 API 请求收费。 2个订阅计划 * Unlimited Egress:无限下载计划,存储 $.0049 GB/月,下载免费。 * Legacy:传统计划,存储 $.0039 GB/月,下载每 GB $.04。 最低消费 * 最低计费量 1TB,不论用了多少存储空间,无限计划最低月付 $4.9,传统计划最低月付 $3.9。 * 最低存储时间 90天,
1 min read
rclone

rclone cache and mount - Best for local using

rclone 有一个 cache 类型的 remote,大概了解了一下。作用是对现存的 remote 做缓存封装,使用 mount 命令将封装的 cache remote 挂载到本地,就可以获得像使用本地磁盘一样体验。 与 s3fs-fuse 的最大不同在于,通过 rclone 挂载 cache remote 以后,拷贝文件到挂载目录时没有时延,感觉上就和把文件拷贝到本地文件夹一样。 实际上,文件先被拷贝到了本地的缓存目录中,然后在后台默默上传到对应的对象存储。默认缓存路径为 .cache/rclone,可以在配置文件中设置 tmp_upload_path = 参数指定其他位置。 挂载 cache remote 假设我通过 rclone config 对已存在的 s3:herald remote 创建了一个名为 s3cache
1 min read
OSS

s3fs-fuse 把 s3-like 对象存储挂载到本地

s3fs-fuse 是一个采用 c++ 开发的开源应用,它的作用是可以将 AWS S3 以及兼容 S3 API 的第三方对象存储像普通文件系统一样挂载到本地计算机,由于这种功能通过 FUSE 实现,因此只能在 Linux 和 MacOS 上使用。 安装 包管理器安装 Debian 9 和 Ubuntu 16.04 及以上版本: $ sudo apt install s3fs 发行版软件仓库中可能提供的不是最新版本 编译安装 如果希望使用最新版本,可以自己编译。 安装编译工具和依赖 $ sudo apt-get install automake autotools-dev fuse g++ git libcurl4-openssl-dev libfuse-dev libssl-dev libxml2-dev make
3 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 (GPLv2) 协议开源,商业和个人均可免费使用。 安装 s3cmd 使用 pip 是最理想的安装方式: $ pip install s3cmd 使用 创建 s3cmd 配置文件 s3cmd 默认读取
2 min read
Ghost

Ghost 2.0 Using S3 custom storage module

GetNAS 网站已经从 Wordpress 迁移到 Ghost 2.x,决定将图片等资源迁移到对象存储,涉及到配置 custom storage module。 支持对象存储的模块有很多,我最终选择了 ghost-storage-adapter-s3 模块。 进入容器 由于网站是跑在 Docker 容器里,所以需要先进入容器。 $ docker exec -it getnas /bin/bash 安装 ghost-storage-adapter-s3 在 Ghost 根目录(/var/lib/ghost)使用 npm 安装模块: /var/lib/ghost $ npm install ghost-storage-adapter-s3 /var/lib/ghost $ mkdir -p ./content/
2 min read