QNUploadSourceFile.m 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. //
  2. // QNUploadSourceFile.m
  3. // QiniuSDK
  4. //
  5. // Created by yangsen on 2021/5/10.
  6. // Copyright © 2021 Qiniu. All rights reserved.
  7. //
  8. #import "QNUploadSourceFile.h"
  9. @interface QNUploadSourceFile()
  10. @property(nonatomic, strong)id <QNFileDelegate> file;
  11. @end
  12. @implementation QNUploadSourceFile
  13. + (instancetype)file:(id <QNFileDelegate>)file {
  14. QNUploadSourceFile *sourceFile = [[QNUploadSourceFile alloc] init];
  15. sourceFile.file = file;
  16. return sourceFile;
  17. }
  18. - (BOOL)couldReloadSource {
  19. return self.file != nil;
  20. }
  21. - (BOOL)reloadSource {
  22. return true;
  23. }
  24. - (nonnull NSString *)getId {
  25. return [NSString stringWithFormat:@"%@_%lld", [self getFileName], [self.file modifyTime]];
  26. }
  27. - (nonnull NSString *)getFileName {
  28. return [[self.file path] lastPathComponent];
  29. }
  30. - (long long)getSize {
  31. return [self.file size];
  32. }
  33. - (NSData *)readData:(NSInteger)dataSize dataOffset:(long long)dataOffset error:(NSError *__autoreleasing _Nullable *)error {
  34. return [self.file read:dataOffset size:dataSize error:error];
  35. }
  36. - (void)close {
  37. [self.file close];
  38. }
  39. - (NSString *)sourceType {
  40. if ([self.file respondsToSelector:@selector(fileType)]) {
  41. return self.file.fileType;
  42. } else {
  43. return @"SourceFile";
  44. }
  45. }
  46. @end