VictoriaFreSh 2022.1.8 → 2022.1.9

Sign up to get free protection for your applications and to get access to all the features.
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