VictoriaFreSh 2022.1.8 → 2022.1.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/victoriafresh.rb +16 -8
  3. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 41105b47d70e0d767e72badf4280f170ca7654668f344255b2718ce6a46f827c
4
- data.tar.gz: 218bdf0c648500f0c518cc1f4d84515528ebbb7512dd0e876c1957bbe26414d6
3
+ metadata.gz: d6d26d764e0e7243cad77fbf9b9bfa0ab0e3a622dd55df6d606d897cf79cf2ae
4
+ data.tar.gz: 5beff4aba458395347cb1c58ef5af643fc92b9061593571336ee73ad603b328e
5
5
  SHA512:
6
- metadata.gz: bea4abcee34ca2430ba9756e2ded00872c373c8ba2eff827a4d163d31556a5ec5bb793a2eb51a2bd65a4a8cfc1297174ed631756958b07de4bad8ae166f76d6b
7
- data.tar.gz: 5bc98b7f1f12f007c2f38cd90fdee5c7f123576f8bf9780908ea2335a06afc01099745e9b47ac67f72e66eb0ee2fe2a37b1cc72b74ed447943eba661f6b0e003
6
+ metadata.gz: 02c1a6374fe1a446bcd471956fd31e96491826a7dbfe24249f8ffd0e5e6d5d07308dc68fa33334752af9b44a517fdba6e98c3ffcf05f8fface38bb14fd505528
7
+ data.tar.gz: 414857f4e1c24ce4a72350769661cdeef8a9f6c67d67e2d9a3c83e71d2b96b415c697ddf36b24b1d2f579ba2b7efe16a1e23a26eff9a489727b3955b8d780b88
data/lib/victoriafresh.rb CHANGED
@@ -28,6 +28,7 @@ class VictoriaFresh
28
28
  @externalDataFile={} #外部数据文件对象
29
29
  @nextFileIdToUse=1 # 下一个要用的文件编号。
30
30
  @md5FileIdMap={} # MD5 与文件编号之间的映射
31
+ @fileIdPathMap={} # 文件编号与它的实际路径之间的映射
31
32
  end
32
33
 
33
34
  # 计算文件内容的MD5。
@@ -72,15 +73,24 @@ class VictoriaFresh
72
73
  def writeFileExternalDataFile(pathPrefix, packagedFile) #写入文件
73
74
  timeObject=getTimeObject(packagedFile) #构造时间戳对象
74
75
 
75
- @externalDataFile.seek(packagedFile['file_start_index']) #定位到起始位置
76
-
77
- victoriaFreshData=@externalDataFile.read(packagedFile['file_length']) #读取内容
76
+ is_duplicate=packagedFile['is_duplicate'] # 是否是重复文件。
77
+
78
78
 
79
- # victoriaFreshData=contentString[packagedFile.file_start_index, packagedFile.file_length] #获取内容
80
- # victoriaFreshData=contentString[ packagedFile['file_start_index'], packagedFile['file_length'] ] #获取内容
79
+ if is_duplicate # 是重复文件。
80
+ sameFileId=packagedFile['same_file_id'] # 找到相同文件的编号。
81
+
82
+ sameFilePath=@fileIdPathMap[sameFileId] # 获取原始相同文件的路径。
83
+
84
+ victoriaFreshData=File.read(sameFilePath) # 读取原始相同文件的内容。
85
+ else # 不是重复文件。
86
+ @externalDataFile.seek(packagedFile['file_start_index']) #定位到起始位置
87
+
88
+ victoriaFreshData=@externalDataFile.read(packagedFile['file_length']) #读取内容
89
+ end # if is_duplicate # 是重复文件。
81
90
 
82
- # pathToMake=pathPrefix + '/' + packagedFile.name #构造文件名
83
91
  pathToMake=pathPrefix + '/' + packagedFile['name'] #构造文件名
92
+
93
+ @fileIdPathMap[fileId]=pathToMake # 记录文件编号与路径之间的映射。
84
94
 
85
95
  begin
86
96
  victoriaFreshDataFile=File.new(pathToMake , "wb", packagedFile['permission']) #数据文件。
@@ -95,8 +105,6 @@ class VictoriaFresh
95
105
  elsif #带权限字段
96
106
  File.chmod(permissionNumber, pathToMake) #设置权限
97
107
  end #if (permissionNumber.nil?) #不带权限字段
98
-
99
-
100
108
  rescue Errno::ENOENT # File not exist
101
109
  puts "Rescued by Errno::ENOENT statement. #{pathToMake}" #报告错误
102
110
  rescue Errno::EACCES # File permission error
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: VictoriaFreSh
3
3
  version: !ruby/object:Gem::Version
4
- version: 2022.1.8
4
+ version: 2022.1.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hxcan Cai