Bitzsoft.Integrations.CloudDrive.Nutstore 1.0.0-alpha.10

This is a prerelease version of Bitzsoft.Integrations.CloudDrive.Nutstore.
dotnet add package Bitzsoft.Integrations.CloudDrive.Nutstore --version 1.0.0-alpha.10
                    
NuGet\Install-Package Bitzsoft.Integrations.CloudDrive.Nutstore -Version 1.0.0-alpha.10
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Bitzsoft.Integrations.CloudDrive.Nutstore" Version="1.0.0-alpha.10" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Bitzsoft.Integrations.CloudDrive.Nutstore" Version="1.0.0-alpha.10" />
                    
Directory.Packages.props
<PackageReference Include="Bitzsoft.Integrations.CloudDrive.Nutstore" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Bitzsoft.Integrations.CloudDrive.Nutstore --version 1.0.0-alpha.10
                    
#r "nuget: Bitzsoft.Integrations.CloudDrive.Nutstore, 1.0.0-alpha.10"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Bitzsoft.Integrations.CloudDrive.Nutstore@1.0.0-alpha.10
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Bitzsoft.Integrations.CloudDrive.Nutstore&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Bitzsoft.Integrations.CloudDrive.Nutstore&version=1.0.0-alpha.10&prerelease
                    
Install as a Cake Tool

Bitzsoft.Integrations.CloudDrive.Nutstore

坚果云企业网盘服务实现,基于 WebDAV 协议与坚果云服务端交互。

功能特性

  • 基于 WebDAV 协议实现文件上传、下载、移动、复制、删除等基础操作
  • 文件夹管理:支持文件夹创建、列举、删除
  • NSDAV XML API:支持搜索、创建分享链接、文件夹 ACL 权限管理
  • 认证方式:邮箱 + 应用专用密码(HTTP Basic Auth)
  • 统一异常处理:WebDAV 错误自动映射为 CloudDriveException

安装

.NET CLI

dotnet add package Bitzsoft.Integrations.CloudDrive.Nutstore

PackageReference

<PackageReference Include="Bitzsoft.Integrations.CloudDrive.Nutstore" Version="1.0.0" />

配置

appsettings.json

{
  "CloudDrive": {
    "Nutstore": {
      "AuthEmail": "your-email@example.com",
      "AuthPassword": "your-app-password",
      "BaseUrl": "https://dav.jianguoyun.com/dav/",
      "RestApiUrl": "https://api.jianguoyun.com/v2/",
      "HttpClientName": "NutstoreCloudDrive"
    }
  }
}
配置项 必填 默认值 说明
AuthEmail -- 坚果云账号邮箱
AuthPassword -- 应用专用密码(非登录密码)
BaseUrl https://dav.jianguoyun.com/dav/ WebDAV 服务基地址
RestApiUrl https://api.jianguoyun.com/v2/ REST API 基地址
HttpClientName NutstoreCloudDrive 命名 HttpClient 名称

注册服务

从 IConfiguration 绑定(推荐)

using Bitzsoft.Integrations.CloudDrive.Nutstore;

builder.Services.AddBitzsoftNutstoreCloudDrive(
    builder.Configuration.GetSection("CloudDrive:Nutstore"));

委托配置

builder.Services.AddBitzsoftNutstoreCloudDrive(options =>
{
    options.AuthEmail = "your-email@example.com";
    options.AuthPassword = "your-app-password";
});

使用示例

using Bitzsoft.Integrations.CloudDrive.Interfaces;
using Bitzsoft.Integrations.CloudDrive.Models;

public class MyService
{
    private readonly ICloudDriveProvider _drive;

    public MyService(ICloudDriveProvider drive) => _drive = drive;

    public async Task UploadAndListAsync()
    {
        // 上传文件
        await using var stream = File.OpenRead("report.pdf");
        var upload = await _drive.UploadAsync(new UploadFileRequest
        {
            FolderId = "/documents",
            FileName = "report.pdf",
            Content = stream,
            ContentType = "application/pdf"
        });

        // 列出文件夹内容
        var files = await _drive.ListFilesAsync("/documents");
        foreach (var file in files.Items)
        {
            Console.WriteLine($"{file.Name} ({file.Size} bytes)");
        }

        // 下载文件
        var download = await _drive.DownloadAsync("/documents/report.pdf");

        // 搜索文件(NSDAV XML API)
        var results = await _drive.SearchAsync(new SearchFilesRequest
        {
            Keyword = "report"
        });

        // 创建分享链接
        var link = await _drive.CreateShareLinkAsync(new CreateShareLinkRequest
        {
            FileId = "/documents/report.pdf",
            AccessLevel = ShareLinkAccessLevel.View
        });

        // 文件夹 ACL 权限管理
        var perms = await _drive.GetPermissionsAsync("/documents");
    }
}

核心类型一览

类型 说明
NutstoreCloudDriveProvider 坚果云实现(ProviderName = "Nutstore"
NutstoreOptions 配置选项(AuthEmail / AuthPassword / BaseUrl / RestApiUrl / HttpClientName)
ICloudDriveProvider 企业网盘服务统一抽象接口
UploadFileRequest / UploadFileResult 上传请求与结果
SearchFilesRequest 搜索请求(NSDAV XML,客户端分页/筛选)
CreateShareLinkRequest / DriveShareLink 共享链接请求与结果
DrivePermission 权限信息(文件夹 ACL)

实现状态

方法 协议 状态 说明
UploadAsync WebDAV PUT 已实现 上传文件
DownloadAsync WebDAV GET 已实现 下载文件
DeleteFileAsync WebDAV DELETE 已实现 删除文件
MoveFileAsync WebDAV MOVE 已实现 移动文件
CopyFileAsync WebDAV COPY 已实现 复制文件
GetFileInfoAsync WebDAV PROPFIND 已实现 获取文件元数据
ListFilesAsync WebDAV PROPFIND 已实现 客户端分页
CreateFolderAsync WebDAV MKCOL 已实现 创建文件夹
DeleteFolderAsync WebDAV DELETE 已实现 删除文件夹
SearchAsync NSDAV XML 已实现 POST /nsdav/search,客户端分页/筛选
CreateShareLinkAsync NSDAV XML 已实现 POST /nsdav/pubObject;公开接口不支持密码和过期时间
DeleteShareLinkAsync -- 不支持 公开 API 手册未提供删除共享链接接口
GetPermissionsAsync NSDAV XML 已实现 POST /nsdav/getSandboxAcl,仅适用于文件夹 ACL
SetPermissionAsync NSDAV XML 已实现 POST /nsdav/updateSandboxAcl,读取当前 ACL 后替换/追加
DeletePermissionAsync NSDAV XML 已实现 POST /nsdav/updateSandboxAcl,读取当前 ACL 后移除
ListVersionsAsync -- 不支持 公开 API 手册未提供历史版本列表接口
DownloadVersionAsync -- 不支持 公开 API 手册未提供指定历史版本下载接口
RestoreVersionAsync -- 不支持 公开 API 手册未提供历史版本恢复接口

请求审计

内置 Bitzsoft.Integrations.RequestLogging 出站请求记录管道,默认 NullRequestLogStore 不持久化。

// ① 默认:启用记录管道但不持久化(日志丢弃)
services.AddBitzsoftNutstoreCloudDrive(options => { /* ... */ });

// ② 持久化:宿主注册 IRequestLogStore 实现后,所有出站请求自动落库
services.AddRequestLogging<MyRequestLogStore>(opts =>
{
    opts.MaxInMemoryBodyBytes = 64 * 1024; // 仅控制内存/加密临时文件切换,不截断正文
    opts.SensitiveFields.Add("mySecret"); // 额外脱敏字段
});
services.AddBitzsoftNutstoreCloudDrive(options => { /* ... */ });

注意事项

  • WebDAV 协议不支持服务端搜索和分页,ListFilesAsync 采用客户端分页
  • SearchAsync 使用 NSDAV 搜索接口,分页和类型/扩展名筛选在客户端完成
  • 分享链接创建接口不支持访问密码、过期时间或最大访问次数
  • 权限管理接口会提交完整 ACL 列表,封装会先读取再替换/移除目标权限
  • fileIdfolderId 均为 WebDAV 相对路径(如 /documents/report.pdf
  • 应用密码需在坚果云 Web 端「安全选项」中生成第三方应用专用密码
  • 文件夹 ID 以路径形式表示,根目录使用 /

依赖

说明
Bitzsoft.Integrations.CloudDrive 企业网盘抽象层
Bitzsoft.Integrations.RequestLogging 出站请求记录管道
Bitzsoft.Integrations.Compatibility 基础工具库
Microsoft.Extensions.Http IHttpClientFactory(连接池)
Microsoft.Extensions.Options.ConfigurationExtensions 配置节点绑定

相关包

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (1)

Showing the top 1 NuGet packages that depend on Bitzsoft.Integrations.CloudDrive.Nutstore:

Package Downloads
Bitzsoft.Integrations.CloudDrive.All

企业网盘服务聚合包 — 包含所有供应商实现

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
1.0.0-alpha.10 32 7/26/2026
1.0.0-alpha.9 60 7/12/2026
1.0.0-alpha.8 59 7/1/2026
1.0.0-alpha.7 74 6/16/2026
1.0.0-alpha.6 66 6/16/2026
1.0.0-alpha.5 67 6/14/2026
1.0.0-alpha.4 54 7/1/2026
1.0.0-alpha.3 66 6/7/2026