AzureBlobModel.cs 5.7 KB

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