小编sto*_*lho的帖子

私有PyPI的pip.conf中的凭据

我有一个私有的PyPI存储库.有没有办法存储pip.conf类似的凭证.pypirc

我的意思是说.目前.pypirc你可以有这样的配置:

[distutils]
index-servers = custom

[custom]
repository: https://pypi.example.com
username: johndoe
password: changeme
Run Code Online (Sandbox Code Playgroud)

从我发现你可以放入pip.conf:

[global]
index = https://username:password@pypi.example.com/pypi
index-url = https://username:password@pypi.example.com/simple
cert = /etc/ssl/certs/ca-certificates.crt
Run Code Online (Sandbox Code Playgroud)

但在这里我看到两个问题:

  1. 对于每个URL,您每次都需要指定相同的用户名和密码.
  2. 用户名和密码在日志中可见,因为它们是URL的一部分.

有没有办法在网址之外存储用户名和密码?

python config pip pypi

18
推荐指数
3
解决办法
5649
查看次数

使用通配符为托管的docker注册表命名空间配置Sonatype Nexus 3权限

我已经安装了Sonatype Nexus 3 OSS和Docker的托管存储库(Docker的私有注册表).我希望有几个用户,可以根据他们的权限提取/推送泊坞窗图像.

第一种方式,我怎么做 - 是为docker创建几个托管存储库,然后通过Securiy - > Privileges使用存储库视图,这种方法基于确切的存储库配置权限:

username:   repository name:    permission:

user1       docker-internal-1   nexus:repository-view-:docker:docker-internal-1:read
user2       docker-internal-1   nexus:repository-view-:docker:docker-internal-1:add

user3       docker-internal-2   nexus:repository-view-:docker:docker-internal-2:read
user4       docker-internal-2   nexus:repository-view-:docker:docker-internal-2:add
Run Code Online (Sandbox Code Playgroud)

这种方法有效,但它需要为docker提供多个托管存储库.

我的问题是 - 在某种程度上可能有一个单一的托管存储库,然后根据docker存储库命名空间配置权限吗?

所以假设我有一个名为docker-internal的存储库,然后我有这样的权限:

username:   repository name:    permission:

user1       docker-internal     nexus:repository-view-:docker:docker-internal/namespace1:read
user2       docker-internal     nexus:repository-view-:docker:docker-internal/namespace1:add

user3       docker-internal     nexus:repository-view-:docker:docker-internal/namespace2:read
user4       docker-internal     nexus:repository-view-:docker:docker-internal/namespace2:add
Run Code Online (Sandbox Code Playgroud)

不幸的是,在Nexus 3文档中,我还没有找到一种如何使用存储库视图权限来执行此操作的原因,因为它们只允许您指定存储库名称,但不允许指定存储库名称.然后就是通配符,它在Sonatype docs中描述,如"通配符 - >这些是使用模式对其他权限进行分组的权限".所以我试图像这样创建一些正则表达式模式:

nexus:repository-view:docker:docker-internal/namespace1:read
Run Code Online (Sandbox Code Playgroud)

不幸的是它不起作用.

permissions wildcard nexus sonatype docker-registry

5
推荐指数
2
解决办法
4598
查看次数

使用find和curl将目录内容上传到Sonatype Nexus存储库

我正在尝试使用curl通过bash将目录的内容上传到nexus,并且在我正在使用的命令中遇到一些问题

简而言之,我想在特定目录上执行find命令,并使用-exec {}动作对nexus进行curl

但是我的find命令返回包含源目录的文件路径,我想更改它,所以我只显示内容而不是完整路径

例如,假设我有一个名为trunk的目录,其中包含这些文件和子目录

trunk/directory1/file1
trunk/directory2/file1
trunk/directory2/file2
Run Code Online (Sandbox Code Playgroud)

我希望我的find命令返回

directory1/file1
directory2/file1
directory2/file2
Run Code Online (Sandbox Code Playgroud)

然后这可以传递给我的exec命令

我当前的find命令是: -

find trunk -type f -exec curl --user user:pass --ftp-create-dirs -T {} https://PATH_TO_NEXUS/{} \;
Run Code Online (Sandbox Code Playgroud)

除了在nexus中创建的文件外,这个工作正常

https://PATH_TO_NEXUS/trunk/directory1/file1
Run Code Online (Sandbox Code Playgroud)

而我想要的是

https://PATH_TO_NEXUS/directory1/file1
Run Code Online (Sandbox Code Playgroud)

有人有任何想法吗?

bash curl nexus

2
推荐指数
1
解决办法
5131
查看次数

标签 统计

nexus ×2

bash ×1

config ×1

curl ×1

docker-registry ×1

permissions ×1

pip ×1

pypi ×1

python ×1

sonatype ×1

wildcard ×1