# Etag **Repository Path**: fengdexuanlun/Etag ## Basic Information - **Project Name**: Etag - **Description**: 如果避免用户上传同名文件呢(即相同key值的文件) - **Primary Language**: PHP - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-08-19 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Etag #### 介绍 如果避免用户上传同名文件呢(即相同key值的文件) #### 算法说明 这个和 “消重” 问题有关,详细见:如何避免用户上传相同的文件。 为何在 sha1 值前面加一个字节的标记位0x16或0x96? 0x16 = 22,而 2^22 = 4M。所以前面的 0x16 其实是文件按 4M 分块的意思。 0x96 = 0x80 | 0x16。其中 0x80 表示这个文件是大文件(有多个分块),hash 值也经过了2重的 sha1 计算。 qetag算法 qetag 是一个计算七牛云存储上文件 hash 值(也是文件下载时的 etag 值)的实用程序。