AzureBlobModel.cs 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141
  1. using MessagePack;
  2. using Microsoft.AspNetCore.Http;
  3. using Microsoft.WindowsAzure.Storage.Table;
  4. using System;
  5. using System.ComponentModel.DataAnnotations;
  6. using System.IO;
  7. using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
  8. namespace TEAMModelOS.SDK.Module.AzureBlob.Container
  9. {
  10. [MessagePackObject(keyAsPropertyName: true)]
  11. public class AzureBlobModel : TableEntity
  12. {
  13. public AzureBlobModel()
  14. {
  15. long time = DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
  16. Timestamp = DateTimeHelper.ConvertToDateTime(time);
  17. }
  18. public AzureBlobModel(IFormFile f, string Container ,string groupName ,string newName)
  19. {
  20. long time= DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
  21. ContentType = f.ContentType;
  22. ContentDisposition = f.ContentDisposition;
  23. FileName = f.FileName;
  24. // Headers = f.Headers.Values;
  25. RealName = groupName + "/"+ newName;
  26. Folder = groupName;
  27. Length = f.Length;
  28. Name = f.Name;
  29. UploadTime = time;
  30. PartitionKey = Container;
  31. RowKey = Guid.NewGuid().ToString();
  32. Extension = f.FileName.Substring(f.FileName.LastIndexOf(".") + 1, (f.FileName.Length - f.FileName.LastIndexOf(".") - 1)); //扩展名
  33. Timestamp = DateTimeHelper.ConvertToDateTime(time);
  34. }
  35. public AzureBlobModel(FileInfo f, string Container, string groupName, string newName ,string contentType)
  36. {
  37. long time = DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
  38. ContentType = contentType;
  39. ContentDisposition = "form-data; name=\"file\"; filename=\"" + f.Name + "\"";
  40. FileName = f.Name;
  41. // Headers = f.Headers.Values;
  42. RealName = groupName + "/" + newName;
  43. Folder = groupName;
  44. Length = f.Length;
  45. Name = "file";
  46. UploadTime = time;
  47. PartitionKey = Container;
  48. RowKey = Guid.NewGuid().ToString();
  49. Extension = f.Name.Substring(f.Name.LastIndexOf(".") + 1, (f.Name.Length - f.Name.LastIndexOf(".") - 1)); //扩展名
  50. Timestamp = DateTimeHelper.ConvertToDateTime(time);
  51. }
  52. public AzureBlobModel(string fileName, string Container, string groupName, string newName, string contentType ,long length)
  53. {
  54. long time = DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
  55. ContentType = contentType;
  56. ContentDisposition = "form-data; name=\"file\"; filename=\"" + fileName + "\"";
  57. FileName = fileName;
  58. // Headers = f.Headers.Values;
  59. RealName = groupName + "/" + newName;
  60. Folder = groupName;
  61. Length = length;
  62. Name = "file";
  63. UploadTime = time;
  64. PartitionKey = Container;
  65. RowKey = Guid.NewGuid().ToString();
  66. Extension = fileName.Substring(fileName.LastIndexOf(".") + 1, (fileName.Length - fileName.LastIndexOf(".") - 1)); //扩展名
  67. Timestamp = DateTimeHelper.ConvertToDateTime(time);
  68. }
  69. public AzureBlobModel(string fileName, string Container, string groupName, string newName,string sha1Code, string contentType, long length)
  70. {
  71. long time = DateTime.Now.ToUniversalTime().Ticks - 621355968000000000;
  72. ContentType = contentType;
  73. ContentDisposition = "form-data; name=\"file\"; filename=\"" + fileName + "\"";
  74. FileName = fileName;
  75. // Headers = f.Headers.Values;
  76. Sha1Code = sha1Code;
  77. RealName = groupName + "/" + newName;
  78. Folder = groupName;
  79. Length = length;
  80. Name = "file";
  81. UploadTime = time;
  82. PartitionKey = Container;
  83. RowKey = Guid.NewGuid().ToString();
  84. Extension = fileName.Substring(fileName.LastIndexOf(".") + 1, (fileName.Length - fileName.LastIndexOf(".") - 1)); //扩展名
  85. Timestamp = DateTimeHelper.ConvertToDateTime(time);
  86. }
  87. [Required(ErrorMessage = "{0} 必须填写")]
  88. public string Folder { get; set; }
  89. [Required(ErrorMessage = "{0} 必须填写")]
  90. public string Sha1Code { get; set; }
  91. //
  92. // 摘要:
  93. // Gets the raw Content-Type header of the uploaded file.
  94. [Required(ErrorMessage = "{0} 必须填写")]
  95. public string BlobUrl { get; set; }
  96. //
  97. // 摘要:
  98. // Gets the raw Content-Type header of the uploaded file.
  99. [Required(ErrorMessage = "{0} 必须填写")]
  100. public string ContentType { get; set; }
  101. //
  102. // 摘要:
  103. // Gets the raw Content-Disposition header of the uploaded file.
  104. [Required(ErrorMessage = "{0} 必须填写")]
  105. public string ContentDisposition { get; set; }
  106. //
  107. // 摘要:
  108. // Gets the header dictionary of the uploaded file.
  109. // public IHeaderDictionary Headers { get; set; }
  110. //
  111. // 摘要:
  112. // Gets the file length in bytes.
  113. [Required(ErrorMessage = "{0} 必须填写")]
  114. public long Length { get; set; }
  115. //
  116. // 摘要:
  117. // Gets the form field name from the Content-Disposition header.
  118. [Required(ErrorMessage = "{0} 必须填写")]
  119. public string Name { get; set; }
  120. //
  121. // 摘要:
  122. // Gets the file name from the Content-Disposition header.
  123. [Required(ErrorMessage = "{0} 必须填写")]
  124. public string FileName { get; set; }
  125. [Required(ErrorMessage = "{0} 必须填写")]
  126. public string RealName { get; set; }
  127. //上传时间戳
  128. [Required(ErrorMessage = "{0} 必须填写")]
  129. public long UploadTime { get; set; }
  130. //上传扩展文件
  131. [Required(ErrorMessage = "{0} 必须填写")]
  132. public string Extension { get; set; }
  133. }
  134. }