-
Notifications
You must be signed in to change notification settings - Fork 1.3k
/
Copy pathFileVersion.m
71 lines (64 loc) · 2.66 KB
/
FileVersion.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
//
// FileVersion.m
// Coding_iOS
//
// Created by Ease on 15/8/12.
// Copyright (c) 2015年 Coding. All rights reserved.
//
#import "FileVersion.h"
#import "Coding_FileManager.h"
@interface FileVersion ()
@property (strong, nonatomic, readwrite) NSString *diskFileName;
@end
@implementation FileVersion
- (NSString *)diskFileName{
if (!_diskFileName) {
_diskFileName = [NSString stringWithFormat:@"%@|||%@|||%@|%@", _name, _project_id.stringValue, self.storage_type, self.storage_key_for_disk];
}
return _diskFileName;
}
- (NSString *)storage_key_for_disk{
NSArray *fileNameCom = [_name componentsSeparatedByString:@"."];
NSMutableArray *storage_keyCom = [_storage_key componentsSeparatedByString:@"."].mutableCopy;
if (fileNameCom.count > 1 && storage_keyCom.count > 0 && ![fileNameCom.lastObject isEqualToString:storage_keyCom.lastObject]) {//_storage_key 后缀名与 fileNameCom 后缀名不同的情况
[storage_keyCom addObject:fileNameCom.lastObject];
return [storage_keyCom componentsJoinedByString:@"."];
}else{
return [_storage_key componentsSeparatedByString:@"/"].lastObject;//'group0/M00/00/01/fwAAAVsHsvqAOY8rABzvMF5h1Ck652.JPG'..诡异的前半截数据
}
}
- (NSString *)downloadPath{
return [NSString stringWithFormat:@"%@api/project/%@/files/histories/%@/download", [NSObject baseURLStr], _project_id, _history_id];
}
- (NSString *)toRemarkPath{
return [NSString stringWithFormat:@"api/project/%@/files/%@/histories/%@/remark", _project_id.stringValue, _file_id.stringValue, _history_id.stringValue];
}
- (NSString *)toDeletePath{
return [NSString stringWithFormat:@"api/project/%@/files/histories/%@", _project_id.stringValue, _history_id.stringValue];
}
//download
- (DownloadState)downloadState{
DownloadState state = DownloadStateDefault;
if ([self diskFileUrl]) {
state = DownloadStateDownloaded;
}else{
Coding_DownloadTask *cDownloadTask = [self cDownloadTask];
if (cDownloadTask) {
if (cDownloadTask.task.state == NSURLSessionTaskStateRunning) {
state = DownloadStateDownloading;
}else if (cDownloadTask.task.state == NSURLSessionTaskStateSuspended) {
state = DownloadStatePausing;
}else{
[Coding_FileManager cancelCDownloadTaskForKey:self.storage_key];
}
}
}
return state;
}
- (Coding_DownloadTask *)cDownloadTask{
return [Coding_FileManager cDownloadTaskForKey:_storage_key];
}
- (NSURL *)diskFileUrl{
return [Coding_FileManager diskDownloadUrlForKey:self.storage_key] ?: [Coding_FileManager diskDownloadUrlForKey:self.storage_key_for_disk];
}
@end