网站首页 网站源码
website
站点相关全部源代码,隐藏了一些关于服务器的信息
using Dpz.Core.EnumLibrary;
using Dpz.Core.Infrastructure.PublicStruct;
using Dpz.Core.Public.ViewModel;
using Dpz.Core.Public.ViewModel.V4;
using Dpz.Core.Shard.Service;

namespace Dpz.Core.Service.ObjectStorage.Services;

/// <summary>
/// 又拍云储存操作
/// </summary>
public interface IObjectStorageOperation
{
    /// <summary>
    /// 储存筒
    /// </summary>
    string Bucket { get; }

    /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="stream">文件流</param>
    /// <param name="path">文件夹路径</param>
    /// <param name="filename">文件名</param>
    /// <returns></returns>
    Task<UploadResult> UploadAsync(Stream stream, ICollection<string> path, string filename);

    /// <summary>
    /// 断点续传
    /// </summary>
    /// <param name="file"></param>
    /// <returns></returns>
    Task<FileAddress?> UploadFileAsync(CloudFile file);

    /// <summary>
    /// 上传文件
    /// </summary>
    /// <param name="bytes">bytes</param>
    /// <param name="path">文件夹路径</param>
    /// <param name="filename">文件名</param>
    /// <returns></returns>
    Task<UploadResult> UploadAsync(byte[] bytes, ICollection<string> path, string filename);

    /// <summary>
    /// 下载文件
    /// </summary>
    /// <param name="pathToFile">路径级文件</param>
    /// <returns></returns>
    Task<Stream> DownloadAsync(string pathToFile);

    /// <summary>
    /// 下载文件另存为
    /// </summary>
    /// <param name="pathToFile">路径级文件</param>
    /// <param name="path">保存路径</param>
    /// <returns></returns>
    Task SaveAsAsync(string pathToFile, string path);

    /// <summary>
    /// 删除文件
    /// </summary>
    /// <param name="pathToFile"></param>
    /// <returns></returns>
    Task DeleteAsync(string pathToFile);

    /// <summary>
    /// 获取目录列表文件和文件夹信息
    /// </summary>
    /// <param name="path">路径</param>
    /// <returns></returns>
    Task<IList<FolderResult>> GetFolderListAsync(string path);

    /// <summary>
    /// 获取文件信息
    /// </summary>
    /// <param name="pathToFile"></param>
    /// <returns></returns>
    Task<FileInformation> GetFileInformationAsync(string pathToFile);
}
⚠⚠    以下内容为AI分析的结果,请根据实际情况进行判断。

上述代码定义了一个名为 IObjectStorageOperation 的接口,主要用于与对象存储服务进行交互。该接口包含了一系列方法,允许用户执行常见的对象存储操作,如上传、下载、删除文件等。以下是对每个部分的详细解释:

接口概述

  • 命名空间: Dpz.Core.Service.ObjectStorage.Services,表示该接口属于对象存储服务的核心功能模块。
  • 接口描述: 该接口的注释说明它是用于“又拍云储存操作”的,表明它可能是与又拍云(一个云存储服务提供商)进行交互的。

属性

  • Bucket: 一个只读属性,表示存储桶的名称。存储桶是对象存储中的一个基本概念,用于组织和管理存储的对象。

方法

  1. UploadAsync(Stream stream, ICollection<string> path, string filename):

    • 用于上传文件,接受一个文件流、文件夹路径和文件名作为参数。
    • 返回一个 UploadResult 对象,表示上传结果。
  2. UploadFileAsync(CloudFile file):

    • 支持断点续传的文件上传方法,接受一个 CloudFile 对象作为参数。
    • 返回一个可选的 FileAddress 对象,表示文件的地址。
  3. UploadAsync(byte[] bytes, ICollection<string> path, string filename):

    • 另一个上传文件的方法,接受字节数组、文件夹路径和文件名作为参数。
    • 同样返回一个 UploadResult 对象。
  4. DownloadAsync(string pathToFile):

    • 用于下载文件,接受文件的路径作为参数。
    • 返回一个 Stream 对象,表示下载的文件流。
  5. SaveAsAsync(string pathToFile, string path):

    • 用于将下载的文件另存为指定路径,接受文件路径和保存路径作为参数。
  6. DeleteAsync(string pathToFile):

    • 用于删除指定路径的文件,接受文件路径作为参数。
  7. GetFolderListAsync(string path):

    • 获取指定路径下的文件和文件夹列表,返回一个 IList<FolderResult> 对象,包含文件和文件夹的信息。
  8. GetFileInformationAsync(string pathToFile):

    • 获取指定文件的信息,返回一个 FileInformation 对象,包含文件的详细信息。

总结

该接口提供了一系列方法,方便开发者与对象存储服务进行交互,支持文件的上传、下载、删除、获取信息等操作。通过实现这个接口,开发者可以轻松地管理存储在云端的文件和文件夹。

loading