12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- using System;
- using System.Collections.Generic;
- using System.Net.Http.Headers;
- using System.Threading;
- using Vinno.vCloud.Common.Storage.ObjectStorageInfo.Solid;
- namespace Vinno.vCloud.Common.Storage.ObjectStorageInfo
- {
- public interface IObjectStorage
- {
- /// <summary>
- /// 上传文件
- /// </summary>
- /// <param name="fileName">UFile文件名</param>
- /// <param name="filePath">需上传的文件路径</param>
- /// <param name="requestUrl">上传地址</param>
- /// <param name="authorization">签名</param>
- /// <param name="progressCallback">进度回调</param>
- /// <returns></returns>
- bool UploadFile(string filePath, string mimeType, string requestUrl, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader, Action<double> progressCallback = null);
- /// <summary>
- /// 上传文件(字节流)
- /// </summary>
- /// <param name="filePath"></param>
- /// <param name="fileName"></param>
- /// <param name="progressCallback"></param>
- /// <returns></returns>
- bool UploadFile(byte[] fileData, MediaTypeHeaderValue mediaTypeHeaderValue, string requestUrl, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader, Action<double> progressCallback = null, CancellationTokenSource cancelTokenSource = null);
- /// <summary>
- /// 复制文件
- /// </summary>
- /// <param name="destinationUrl">目标服务器</param>
- /// <param name="sourceFileUrl">源服务器</param>
- /// <param name="heads">签名</param>
- /// <returns>是否成功</returns>
- bool CopyFile(string destinationUrl, string sourceFileUrl, Dictionary<string, string> heads);
- /// <summary>
- /// 上传多个文件
- /// </summary>
- /// <param name="uFileInfos">文件信息列表</param>
- /// <param name="progressCallback">进度回调</param>
- /// <returns></returns>
- bool UploadFiles(List<ObjectFileInfo> uFileInfos, Dictionary<string, string> heads, ProductInfoHeaderValue productInfoHeader);
- /// <summary>
- /// 下载文件
- /// </summary>
- /// <param name="filePath">保存文件地址</param>
- /// <param name="requestUrl">下载地址</param>
- /// <param name="progressCallback">进度回调</param>
- /// <returns></returns>
- bool DownloadFile(string filePath, string requestUrl, Action<double> progressCallback = null, CancellationTokenSource cancelTokenSource = null);
- /// <summary>
- /// 下载多个文件
- /// </summary>
- /// <param name="uFileInfos">文件列表</param>
- /// <param name="progressCallback">进度回调</param>
- /// <returns></returns>
- bool DownloadFiles(List<ObjectFileInfo> uFileInfos, Action<double> progressCallback = null);
- /// <summary>
- /// 删除文件
- /// </summary>
- /// <param name="requestUrl">文件地址</param>
- /// <param name="authorization">签名</param>
- /// <returns></returns>
- bool DeleteFile(string requestUrl, string authorization);
- /// <summary>
- /// 查询文件
- /// </summary>
- /// <param name="requestUrl">文件查询地址</param>
- /// <param name="authorization">签名</param>
- /// <returns></returns>
- ObjectFileItemList SearchFiles(string requestUrl, string authorization);
- /// <summary>
- /// 获取文件
- /// </summary>
- /// <param name="requestUrl">请求地址</param>
- /// <param name="from">Range开始位置</param>
- /// <param name="to">Range结束位置</param>
- /// <param name="progressCallback"></param>
- /// <returns></returns>
- byte[] GetFile(string requestUrl, long from, long to, Action<double> progressCallback = null);
- /// <summary>
- /// 下载文件
- /// </summary>
- /// <param name="filePath">文件路径</param>
- /// <param name="requestUrl">请求地址</param>
- /// <param name="from">Range开始位置</param>
- /// <param name="to">Range结束位置</param>
- /// <param name="progressCallback"></param>
- /// <returns></returns>
- bool DownloadFile(string filePath, string requestUrl, long from, long to, Action<double> progressCallback = null);
- }
- }
|