IObjectStorage.cs 4.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Net.Http.Headers;
  4. using System.Threading;
  5. using Vinno.vCloud.Common.Storage.ObjectStorageInfo.Solid;
  6. namespace Vinno.vCloud.Common.Storage.ObjectStorageInfo
  7. {
  8. public interface IObjectStorage
  9. {
  10. /// <summary>
  11. /// 上传文件
  12. /// </summary>
  13. /// <param name="fileName">UFile文件名</param>
  14. /// <param name="filePath">需上传的文件路径</param>
  15. /// <param name="requestUrl">上传地址</param>
  16. /// <param name="authorization">签名</param>
  17. /// <param name="progressCallback">进度回调</param>
  18. /// <returns></returns>
  19. bool UploadFile(string filePath, string mimeType, string requestUrl, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader, Action<double> progressCallback = null);
  20. /// <summary>
  21. /// 上传文件(字节流)
  22. /// </summary>
  23. /// <param name="filePath"></param>
  24. /// <param name="fileName"></param>
  25. /// <param name="progressCallback"></param>
  26. /// <returns></returns>
  27. bool UploadFile(byte[] fileData, MediaTypeHeaderValue mediaTypeHeaderValue, string requestUrl, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader, Action<double> progressCallback = null, CancellationTokenSource cancelTokenSource = null);
  28. /// <summary>
  29. /// 复制文件
  30. /// </summary>
  31. /// <param name="destinationUrl">目标服务器</param>
  32. /// <param name="sourceFileUrl">源服务器</param>
  33. /// <param name="heads">签名</param>
  34. /// <returns>是否成功</returns>
  35. bool CopyFile(string destinationUrl, string sourceFileUrl, Dictionary<string, string> heads);
  36. /// <summary>
  37. /// 上传多个文件
  38. /// </summary>
  39. /// <param name="uFileInfos">文件信息列表</param>
  40. /// <param name="progressCallback">进度回调</param>
  41. /// <returns></returns>
  42. bool UploadFiles(List<ObjectFileInfo> uFileInfos, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader);
  43. /// <summary>
  44. /// 下载文件
  45. /// </summary>
  46. /// <param name="filePath">保存文件地址</param>
  47. /// <param name="requestUrl">下载地址</param>
  48. /// <param name="progressCallback">进度回调</param>
  49. /// <returns></returns>
  50. bool DownloadFile(string filePath, string requestUrl, Action<double> progressCallback = null, CancellationTokenSource cancelTokenSource = null);
  51. /// <summary>
  52. /// 下载多个文件
  53. /// </summary>
  54. /// <param name="uFileInfos">文件列表</param>
  55. /// <param name="progressCallback">进度回调</param>
  56. /// <returns></returns>
  57. bool DownloadFiles(List<ObjectFileInfo> uFileInfos, Action<double> progressCallback = null);
  58. /// <summary>
  59. /// 删除文件
  60. /// </summary>
  61. /// <param name="requestUrl">文件地址</param>
  62. /// <param name="authorization">签名</param>
  63. /// <returns></returns>
  64. bool DeleteFile(string requestUrl, string authorization);
  65. /// <summary>
  66. /// 查询文件
  67. /// </summary>
  68. /// <param name="requestUrl">文件查询地址</param>
  69. /// <param name="authorization">签名</param>
  70. /// <returns></returns>
  71. ObjectFileItemList SearchFiles(string requestUrl, string authorization);
  72. /// <summary>
  73. /// 获取文件
  74. /// </summary>
  75. /// <param name="requestUrl">请求地址</param>
  76. /// <param name="from">Range开始位置</param>
  77. /// <param name="to">Range结束位置</param>
  78. /// <param name="progressCallback"></param>
  79. /// <returns></returns>
  80. byte[] GetFile(string requestUrl, long from, long to, Action<double> progressCallback = null);
  81. /// <summary>
  82. /// 下载文件
  83. /// </summary>
  84. /// <param name="filePath">文件路径</param>
  85. /// <param name="requestUrl">请求地址</param>
  86. /// <param name="from">Range开始位置</param>
  87. /// <param name="to">Range结束位置</param>
  88. /// <param name="progressCallback"></param>
  89. /// <returns></returns>
  90. bool DownloadFile(string filePath, string requestUrl, long from, long to, Action<double> progressCallback = null);
  91. }
  92. }