python - 在不超过 inode 或硬盘空间的情况下存储大量 jpeg 图像(Python)
问题描述
我正在处理数百万个不同尺寸的小图像(~100x100)。
如果我将它们以 jpg 格式存储在硬盘上,它们将超过我磁盘的 inode 限制。
如果我将它们存储为像 HDF5 这样的二进制文件,即使我应用压缩,它们也会占用 >100GB(h5py 的 gzip 无损压缩远不如 jpeg 的压缩那么紧凑)。
是否有任何标准方法将这些图像存储为具有 jpeg 压缩的单个文件,这样它既不会占用大量 inode 或硬盘空间?我还想通过 python 轻松阅读这些图像。
解决方案
Ext4 的每节点字节数
如果图像大部分大小相同,则可以为每个 inode 选择最佳字节数。您需要小于默认 16384 的值才能更好地匹配您的图像尺寸。
循环装置
如果重新格式化磁盘不是一个选项,您可以挂载一个“循环”设备:
dd if=/dev/zero of=./single-file bs=512 count=2M # 1G
mkfs.ext4 -i 1024 ./single-file # 1K per inode
mkdir /mnt/small-images/
mount ./single-file /mnt/small-images
mv 01.jpg /mnt/small-images/
推荐阅读
- java - Intellij 无法从项目模块构建 jar
- mysql - 查询字符串值不起作用
- dictionary - 遍历 SaltStack 中的一对多键值 jinja 字典
- java - Eclipse RCP 进度监视器不再显示
- python - 只有单个输入时如何处理 MinMaxScaler?
- aws-sdk - Amazon Connect 自动拨出电话
- android - 错误:包 com.bumptech.glide.request.animation 不存在
- javascript - SecurityError:操作不安全。php
- sql - SQL Server:从包含 json 字符串的 nvarchar(max) 变量中获取所有字符串出现(标签)
- jpa - 外键的列数错误