|
@@ -0,0 +1,141 @@
|
|
|
+
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
+using Microsoft.Azure.Cosmos.Table;
|
|
|
+using System;
|
|
|
+using System.ComponentModel.DataAnnotations;
|
|
|
+using System.IO;
|
|
|
+using TEAMModelOS.SDK.Helper.Common.DateTimeHelper;
|
|
|
+
|
|
|
+namespace TEAMModelOS.SDK.Module.AzureBlob.Container
|
|
|
+{
|
|
|
+
|
|
|
+ public class AzureBlobModel : TableEntity
|
|
|
+ {
|
|
|
+
|
|
|
+
|
|
|
+ public AzureBlobModel()
|
|
|
+ {
|
|
|
+ long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
|
|
|
+ Timestamp = DateTime.UtcNow;
|
|
|
+ }
|
|
|
+
|
|
|
+ public AzureBlobModel(IFormFile f, string Container, string groupName, string newName)
|
|
|
+ {
|
|
|
+ long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
|
|
|
+ ContentType = f.ContentType;
|
|
|
+ ContentDisposition = f.ContentDisposition;
|
|
|
+ FileName = f.FileName;
|
|
|
+ // Headers = f.Headers.Values;
|
|
|
+ RealName = groupName + "/" + newName;
|
|
|
+ Folder = groupName;
|
|
|
+ Length = f.Length;
|
|
|
+ Name = f.Name;
|
|
|
+ UploadTime = time;
|
|
|
+ PartitionKey = Container;
|
|
|
+ RowKey = Guid.NewGuid().ToString();
|
|
|
+ Extension = f.FileName.Substring(f.FileName.LastIndexOf(".") + 1, (f.FileName.Length - f.FileName.LastIndexOf(".") - 1)); //扩展名
|
|
|
+ Timestamp = DateTimeHelper.ConvertToDateTime(time);
|
|
|
+ }
|
|
|
+
|
|
|
+ public AzureBlobModel(FileInfo f, string Container, string groupName, string newName, string contentType)
|
|
|
+ {
|
|
|
+ long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
|
|
|
+ ContentType = contentType;
|
|
|
+ ContentDisposition = "form-data; name=\"file\"; filename=\"" + f.Name + "\"";
|
|
|
+ FileName = f.Name;
|
|
|
+ // Headers = f.Headers.Values;
|
|
|
+ RealName = groupName + "/" + newName;
|
|
|
+ Folder = groupName;
|
|
|
+ Length = f.Length;
|
|
|
+ Name = "file";
|
|
|
+ UploadTime = time;
|
|
|
+ PartitionKey = Container;
|
|
|
+ RowKey = Guid.NewGuid().ToString();
|
|
|
+ Extension = f.Name.Substring(f.Name.LastIndexOf(".") + 1, (f.Name.Length - f.Name.LastIndexOf(".") - 1)); //扩展名
|
|
|
+ Timestamp = DateTimeHelper.ConvertToDateTime(time);
|
|
|
+ }
|
|
|
+
|
|
|
+ public AzureBlobModel(string fileName, string Container, string groupName, string newName, string contentType, long length)
|
|
|
+ {
|
|
|
+ long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
|
|
|
+ ContentType = contentType;
|
|
|
+ ContentDisposition = "form-data; name=\"file\"; filename=\"" + fileName + "\"";
|
|
|
+ FileName = fileName;
|
|
|
+ // Headers = f.Headers.Values;
|
|
|
+ RealName = groupName + "/" + newName;
|
|
|
+ Folder = groupName;
|
|
|
+ Length = length;
|
|
|
+ Name = "file";
|
|
|
+ UploadTime = time;
|
|
|
+ PartitionKey = Container;
|
|
|
+ RowKey = Guid.NewGuid().ToString();
|
|
|
+ Extension = fileName.Substring(fileName.LastIndexOf(".") + 1, (fileName.Length - fileName.LastIndexOf(".") - 1)); //扩展名
|
|
|
+ Timestamp = DateTimeHelper.ConvertToDateTime(time);
|
|
|
+ }
|
|
|
+ public AzureBlobModel(string fileName, string Container, string groupName, string newName, string sha1Code, string contentType, long length)
|
|
|
+ {
|
|
|
+ long time = new DateTimeOffset(DateTime.UtcNow).ToUnixTimeMilliseconds();
|
|
|
+ ContentType = contentType;
|
|
|
+ ContentDisposition = "form-data; name=\"file\"; filename=\"" + fileName + "\"";
|
|
|
+ FileName = fileName;
|
|
|
+ // Headers = f.Headers.Values;
|
|
|
+ Sha1Code = sha1Code;
|
|
|
+ RealName = groupName + "/" + newName;
|
|
|
+ Folder = groupName;
|
|
|
+ Length = length;
|
|
|
+ Name = "file";
|
|
|
+ UploadTime = time;
|
|
|
+ PartitionKey = Container;
|
|
|
+ RowKey = Guid.NewGuid().ToString();
|
|
|
+ Extension = fileName.Substring(fileName.LastIndexOf(".") + 1, (fileName.Length - fileName.LastIndexOf(".") - 1)); //扩展名
|
|
|
+ Timestamp = DateTime.UtcNow;
|
|
|
+ }
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string Folder { get; set; }
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string Sha1Code { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the raw Content-Type header of the uploaded file.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string BlobUrl { get; set; }
|
|
|
+
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the raw Content-Type header of the uploaded file.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string ContentType { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the raw Content-Disposition header of the uploaded file.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string ContentDisposition { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the header dictionary of the uploaded file.
|
|
|
+ // public IHeaderDictionary Headers { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the file length in bytes.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public long Length { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the form field name from the Content-Disposition header.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string Name { get; set; }
|
|
|
+ //
|
|
|
+ // 摘要:
|
|
|
+ // Gets the file name from the Content-Disposition header.
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string FileName { get; set; }
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string RealName { get; set; }
|
|
|
+ //上传时间戳
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public long UploadTime { get; set; }
|
|
|
+ //上传扩展文件
|
|
|
+ [Required(ErrorMessage = "{0} 必须填写")]
|
|
|
+ public string Extension { get; set; }
|
|
|
+ }
|
|
|
+}
|