配置

您可以通过编辑 appsettings.json 文件来修改 BaGet 的配置。

要求 API 密钥

您可以要求用户在发布包时提供一个密码,称为 API 密钥。为此,请在 ApiKey 字段中插入所需的 API 密钥。

{
    "ApiKey": "NUGET-SERVER-API-KEY",
    ...
}

用户现在必须提供 API 密钥才能推送包:

dotnet nuget push -s http://localhost:5000/v3/index.json -k NUGET-SERVER-API-KEY package.1.0.0.nupkg

启用直通缓存

直通缓存(read-through caching)允许您从上游源索引包。您可以使用直通缓存来:

  1. 加快构建速度(当从 nuget.org 还原包的速度很慢时)
  2. 在离线场景下启用包还原

以下 Mirror 设置配置 BaGet 从 nuget.org 索引包:

{
    ...

    "Mirror": {
        "Enabled":  true,
        "PackageSource": "https://api.nuget.org/v3/index.json"
    },

    ...
}
提示

PackageSource 是 NuGet 服务索引的值。

启用包硬删除

为了防止 "left pad" 问题,BaGet 的默认配置不允许删除包。每当 BaGet 收到包删除请求时,它会对包执行"取消列出"(unlist)操作。取消列出的包无法被搜索发现,但如果您知道包的 ID 和版本,仍然可以下载。您可以通过设置 PackageDeletionBehavior 来覆盖此行为:

{
    ...

    "PackageDeletionBehavior": "HardDelete",

    ...
}

启用包覆盖

通常情况下,如果包的 ID 和版本已存在,BaGet 会拒绝上传。您可以通过设置 AllowPackageOverwrites 来配置 BaGet 覆盖已存在的包:

{
    ...

    "AllowPackageOverwrites": true,

    ...
}

私有源

私有源要求用户在访问包之前进行身份验证。

警告

目前不支持私有源!更多信息请参阅 此拉取请求。

数据库配置

BaGet 支持多种数据库引擎来存储包信息:

每种数据库引擎都需要一个连接字符串来配置连接。请参阅 ConnectionStrings.com 了解如何为每种数据库引擎创建正确的连接字符串。

您可以使用环境变量或编辑 appsettings.json 文件来配置所选的数据库引擎。

环境变量

有两个与数据库配置相关的环境变量:

appsettings.json

数据库设置位于 appsettings.json 配置文件的 Database 键下:

{
    ...

    "Database": {
        "Type": "Sqlite",
        "ConnectionString": "Data Source=baget.db"
    },

    ...
}

有两个与数据库配置相关的设置:

IIS 服务器选项

IIS 服务器选项可以在 IISServerOptions 键下配置。可用选项详见 docs.microsoft.com。注意:如果未指定,BaGet 的 MaxRequestBodySize 默认为 250MB(262144000 字节),而非 ASP.NET Core 默认的 30MB。

{
    ...

    "IISServerOptions": {
        "MaxRequestBodySize": 262144000
    },

    ...
}