AzureBlobModel.cs 5.7 KB

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