FastDFS FileID与Trunk File信息

2024-06-12 16:18
文章标签 信息 file fastdfs trunk fileid

本文主要是介绍FastDFS FileID与Trunk File信息,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Docker 安装 FastDfs:

https://registry.hub.docker.com/r/ygqygq2/fastdfs-nginx
https://github.com/ygqygq2/fastdfs-nginx

docker network create fastdfs-net
docker run -dit --network=fastdfs-net --name tracker -v /var/fdfs/tracker:/var/fdfs ygqygq2/fastdfs-nginx:latest tracker
docker run -dit --network=fastdfs-net --name storage0 -e TRACKER_SERVER=tracker:22122 -v /var/fdfs/storage0:/var/fdfs ygqygq2/fastdfs-nginx:latest storage
docker run -dit --network=fastdfs-net --name storage1 -e TRACKER_SERVER=tracker:22122 -v /var/fdfs/storage1:/var/fdfs ygqygq2/fastdfs-nginx:latest storage
docker run -dit --net=bridge -p 22122:22122 --name tracker -v /var/fdfs/tracker:/var/fdfs ygqygq2/fastdfs-nginx:latest tracker
docker run -dit --net=bridge -p 23000:23000 -p 8080:8080 --name storage0 -e TRACKER_SERVER=172.23.101.154:22122 -v /var/fdfs/storage0:/var/fdfs ygqygq2/fastdfs-nginx:latest storage

查了版本

$fdfs_trackerd --help
FastDFS server v6.06

合并存储:

FastDFS提供的合并存储功能,默认创建的大文件为64MB,然后在该大文件中存储很多小文件。大文件中容纳一个小文件的空间称为一个Slot,规定Slot最小值为256字节,最大为16MB,也就是小于256字节的文件也需要占用256字节,超过16MB的文件不会合并存储而是创建独立的文件。

1、合并存储配置:

FastDFS提供了合并存储功能的实现,所有的配置都在tracker.conf文件之中,具体摘录如下:
trunk功能启动与配置:通过tracker.conf文件启动与配置,个配置项如下:

use_trunk_file = true  #是否启用trunk存储, 默认:false不开启,true是开启
slot_min_size = 256     #单位:bytes,trunk文件最小分配单元,小于this的也会花费256bytes存储
slot_max_size = 1MB     #trunk内部存储的最大文件,超过该值会被独立存储,默认16MB
trunk_file_size = 64MB                   #trunk文件大小
trunk_create_file_advance = false        #是否预先创建trunk文件
trunk_create_file_time_base = 02:00      #预先创建trunk文件的基准时间
trunk_create_file_interval = 86400       #预先创建trunk文件的时间间隔
trunk_create_file_space_threshold = 20G  #trunk创建文件的最大空闲空间
trunk_init_check_occupying = false       #启动时是否检查每个空闲空间列表项已经被使用
trunk_init_reload_from_binlog = false   #是否纯粹从trunk-binlog重建空闲空间列表
trunk_compress_binlog_min_interval = 0  #对trunk-binlog进行压缩的时间间隔
2、合并存储文件命名与文件结构

向FastDFS上传文件成功时,服务器返回该文件的存取ID叫做fileid,当没有启动合并存储时该fileid和磁盘上实际存储的文件一一对应,当采用合并存储时就不再一一对应而是多个fileid对应的文件被存储成一个大文件。

注:下面将采用合并存储后的大文件统称为Trunk文件,没有合并存储的文件统称为源文件;
请注意区分三个概念:
1)Trunk文件:storage服务器磁盘上存储的实际文件,默认大小为64MB
2)合并存储文件的FileId:表示服务器启用合并存储后,每次上传返回给客户端的FileId,注意此时该FileId与磁盘上的文件没有一一对应关系;
3)没有合并存储的FileId:表示服务器未启用合并存储时,Upload时返回的FileID

Trunk文件文件名格式:fdfs_storage1/data/00/00/000001 文件名从1开始递增,类型为int;

fileid 采用 Base64 url编码。

1、在启动合并存储时服务返回给客户端的fileid也会有所变化
1)没有合并存储时fileid:

文件名(不含后缀名)采用Base64编码,包含如下5个字段(每个字段均为4字节整数):

group1/M00/00/00/rBEAAWCHwpKAG_IaAAE2xZYv3yo399.tar.gz

这个文件名中,除了.tar.gz 为文件后缀,CmQPRlP0T4-AA9_ECDsoXi21HR0 这部分是一个base64编码缓冲区,组成如下:
storage_id(ip的数值型)源storage server ID或IP地址
timestamp(文件创建时间戳)
file_size(若原始值为32位则前面加入一个随机值填充,最终为64位)
crc32(文件内容的检验码)
随机数 (引入随机数的目的是防止生成重名文件)

rBEAAWCHwpKAG_IaAAE2xZYv3yo399
| 4bytes | 4bytes    | 8bytes    |4byt

这篇关于FastDFS FileID与Trunk File信息的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1054708

相关文章

业务中14个需要进行A/B测试的时刻[信息图]

在本指南中,我们将全面了解有关 A/B测试 的所有内容。 我们将介绍不同类型的A/B测试,如何有效地规划和启动测试,如何评估测试是否成功,您应该关注哪些指标,多年来我们发现的常见错误等等。 什么是A/B测试? A/B测试(有时称为“分割测试”)是一种实验类型,其中您创建两种或多种内容变体——如登录页面、电子邮件或广告——并将它们显示给不同的受众群体,以查看哪一种效果最好。 本质上,A/B测

【北交大信息所AI-Max2】使用方法

BJTU信息所集群AI_MAX2使用方法 使用的前提是预约到相应的算力卡,拥有登录权限的账号密码,一般为导师组共用一个。 有浏览器、ssh工具就可以。 1.新建集群Terminal 浏览器登陆10.126.62.75 (如果是1集群把75改成66) 交互式开发 执行器选Terminal 密码随便设一个(需记住) 工作空间:私有数据、全部文件 加速器选GeForce_RTX_2080_Ti

Linux命令(11):系统信息查看命令

系统 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/issue # 查看操作系统版本# cat /proc/cpuinfo # 查看CPU信息# hostname # 查看计算机名# lspci -tv # 列出所有PCI设备# lsusb -tv

Open a folder or workspace... (File -> Open Folder)

问题:vscode Open with Live Server 时 显示Open a folder or workspace... (File -> Open Folder)报错 解决:不可以单独打开文件1.html ; 需要在文件夹里打开 像这样

【小迪安全笔记 V2022 】信息打点9~11

第9天 信息打点-CDN绕过篇&漏洞回链8接口探针&全网扫指&反向件 知识点: 0、CDN知识-工作原理及阻碍 1、CDN配置-域名&区域&类型 2、CDN绕过-靠谱十余种技战法 3、CDN绑定-HOSTS绑定指向访问 CDN 是构建在数据网络上的一种分布式的内容分发网。 CDN的作用是采用流媒体服务器集群技术,克服单机系统输出带宽及并发能力不足的缺点,可极大提升系统支持的并发流数目,减少或避

Weex入门教程之4,获取当前全局环境变量和配置信息(屏幕高度、宽度等)

$getConfig() 获取当前全局环境变量和配置信息。 Returns: config (object): 配置对象;bundleUrl (string): bundle 的 url;debug (boolean): 是否是调试模式;env (object): 环境对象; weexVersion (string): Weex sdk 版本;appName (string): 应用名字;

android java.io.IOException: open failed: ENOENT (No such file or directory)-api23+权限受权

问题描述 在安卓上,清单明明已经受权了读写文件权限,但偏偏就是创建不了目录和文件 调用mkdirs()总是返回false. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/><uses-permission android:name="android.permission.READ_E

bash: arm-linux-gcc: No such file or directory

ubuntu出故障重装了系统,一直用着的gcc使用不了,提示bash: arm-linux-gcc: No such file or directorywhich找到的命令所在的目录 在google上翻了一阵发现此类问题的帖子不多,后来在Freescale的的LTIB环境配置文档中发现有这么一段:     # Packages required for 64-bit Ubuntu

编译linux内核出现 arm-eabi-gcc: error: : No such file or directory

external/e2fsprogs/lib/ext2fs/tdb.c:673:29: warning: comparison between : In function 'max2165_set_params': -。。。。。。。。。。。。。。。。。。 。。。。。。。。。。。。。 。。。。。。。。 host asm: libdvm <= dalvik/vm/mterp/out/Inte

Python批量读取身份证信息录入系统和重命名

前言 大家好, 如果你对自动化处理身份证图片感兴趣,可以尝试以下操作:从身份证图片中快速提取信息,填入表格并提交到网页系统。如果你无法完成这个任务,我们将在“Python自动化办公2.0”课程中详细讲解实现整个过程。 实现过程概述: 模块与功能: re 模块:用于从 OCR 识别出的文本中提取所需的信息。 日期模块:计算年龄。 pandas:处理和操作表格数据。 PaddleOCR:百度的