@@ -65,34 +65,40 @@ - (void)fakeStart {
6565
6666 }
6767 BOOL exist = [[NSFileManager defaultManager ] fileExistsAtPath: self .resumableTaskFile];
68+ NSMutableDictionary *lowercaseStringDic = [NSMutableDictionary dictionary ];
69+ [(NSDictionary *)outputObject enumerateKeysAndObjectsUsingBlock: ^(NSString *key, id _Nonnull obj, BOOL * _Nonnull stop) {
70+ [lowercaseStringDic setValue: obj forKey: key.lowercaseString];
71+ }];
6872 if (!exist) {
6973 [[NSFileManager defaultManager ] createFileAtPath: self .resumableTaskFile contents: [NSData data ] attributes: nil ];
70- NSDictionary *dic = @{ @" lastModified " :outputObject[ @" Last-Modified " ],
71- @" contentLength " :outputObject[ @" Content-Length " ],
72- @" etag " :outputObject[ @" Etag " ],
73- @" crc64ecma " :outputObject[ @" x-cos-hash-crc64ecma " ],
74- } ;
74+ NSMutableDictionary *dic = [ NSMutableDictionary dictionary ];
75+ [dic setValue: lowercaseStringDic[ @" Last-Modified " ] forKey: @" lastModified " ];
76+ [dic setValue: lowercaseStringDic[ @" Content-Length " ] forKey: @" contentLength " ];
77+ [dic setValue: lowercaseStringDic[ @" Etag " ] forKey: @" etag " ];
78+ [dic setValue: lowercaseStringDic[ @" x-cos-hash-crc64ecma " ] forKey: @" crc64ecma " ] ;
7579 NSError *parseError;
76- NSData *info =[NSJSONSerialization dataWithJSONObject: dic options: NSJSONWritingPrettyPrinted error: &parseError];
80+ NSData *info =[NSJSONSerialization dataWithJSONObject: [ dic copy ] options: NSJSONWritingPrettyPrinted error: &parseError];
7781 NSError *writeDataError;
7882 [info writeToFile: self .resumableTaskFile options: 0 error: &writeDataError];
7983 }else {
8084 NSData *data = [[NSData alloc ] initWithContentsOfFile: self .resumableTaskFile];
8185 NSDictionary *dic = [NSJSONSerialization JSONObjectWithData: data options: kNilOptions error: nil ];
86+
8287 // 如果文件发生改变
83- if (![dic[@" contentLength" ] isEqualToString: outputObject [@" Content-Length" ]] ||
84- ![dic[@" lastModified" ] isEqualToString: outputObject [@" Last-Modified" ]] ||
85- ![dic[@" etag" ] isEqualToString: outputObject [@" Etag" ]] ||
86- ![dic[@" crc64ecma" ] isEqualToString: outputObject [@" x-cos-hash-crc64ecma" ]]){
88+ if (![dic[@" contentLength" ] isEqualToString: lowercaseStringDic [@" Content-Length" ]] ||
89+ ![dic[@" lastModified" ] isEqualToString: lowercaseStringDic [@" Last-Modified" ]] ||
90+ ![dic[@" etag" ] isEqualToString: lowercaseStringDic [@" Etag" ]] ||
91+ ![dic[@" crc64ecma" ] isEqualToString: lowercaseStringDic [@" x-cos-hash-crc64ecma" ]]){
8792 QCloudRemoveFileByPath (self.resumableTaskFile );
8893 [[NSFileManager defaultManager ] createFileAtPath: self .resumableTaskFile contents: [NSData data ] attributes: nil ];
89- NSDictionary *dic = @{@" lastModified" :outputObject[@" Last-Modified" ],
90- @" contentLength" :outputObject[@" Content-Length" ],
91- @" etag" :outputObject[@" Etag" ],
92- @" crc64ecma" :outputObject[@" x-cos-hash-crc64ecma" ],
93- };
94+ NSMutableDictionary *dic = [NSMutableDictionary dictionary ];
95+ [dic setValue: lowercaseStringDic[@" Last-Modified" ] forKey: @" lastModified" ];
96+ [dic setValue: lowercaseStringDic[@" Content-Length" ] forKey: @" contentLength" ];
97+ [dic setValue: lowercaseStringDic[@" Etag" ] forKey: @" etag" ];
98+ [dic setValue: lowercaseStringDic[@" x-cos-hash-crc64ecma" ] forKey: @" crc64ecma" ];
99+
94100 NSError *parseError;
95- NSData *info =[NSJSONSerialization dataWithJSONObject: dic options: NSJSONWritingPrettyPrinted error: &parseError];
101+ NSData *info =[NSJSONSerialization dataWithJSONObject: [ dic copy ] options: NSJSONWritingPrettyPrinted error: &parseError];
96102 NSError *writeDataError;
97103 [info writeToFile: self .resumableTaskFile options: 0 error: &writeDataError];
98104 }else {
0 commit comments