如何无需安装即可从AWS Codeartifact获取PyPI包信息
无需安装包从AWS CodeArtifact PyPI仓库获取包详情
核心原理
AWS CodeArtifact的PyPI仓库完全兼容PyPI官方API规范,你可以复用PyPI的JSON端点格式,只需替换为你的CodeArtifact仓库地址并添加身份验证即可。
操作步骤
1. 获取CodeArtifact授权令牌
使用AWS CLI生成临时授权令牌(默认有效期12小时):
aws codeartifact get-authorization-token \ --domain YOUR_DOMAIN_NAME \ --domain-owner YOUR_AWS_ACCOUNT_ID \ --query authorizationToken \ --output text
替换YOUR_DOMAIN_NAME(你的CodeArtifact域名)和YOUR_AWS_ACCOUNT_ID(你的AWS账号ID)。
2. 构造包详情请求URL
按以下格式拼接请求地址:
https://<DOMAIN>-<ACCOUNT_ID>.d.codeartifact.<REGION>.amazonaws.com/pypi/<REPOSITORY_NAME>/pypi/<PACKAGE_NAME>/json
替换占位符:
<DOMAIN>:你的CodeArtifact域名<ACCOUNT_ID>:你的AWS账号ID<REGION>:仓库所在AWS区域(如us-east-1)<REPOSITORY_NAME>:目标PyPI仓库名称<PACKAGE_NAME>:要查询的包名(如requests)
3. 发送HTTP请求获取JSON详情
用curl发送请求并携带授权令牌:
# 先存储令牌 TOKEN=$(aws codeartifact get-authorization-token --domain YOUR_DOMAIN_NAME --domain-owner YOUR_AWS_ACCOUNT_ID --query authorizationToken --output text) # 发送查询请求 curl -H "Authorization: Bearer $TOKEN" "https://YOUR_DOMAIN-YOUR_AWS_ACCOUNT_ID.d.codeartifact.YOUR_REGION.amazonaws.com/pypi/YOUR_REPOSITORY_NAME/pypi/YOUR_PACKAGE_NAME/json"
注意事项
- 确保AWS CLI已配置
codeartifact:GetAuthorizationToken和codeartifact:ReadFromRepository权限 - 若仓库是外部代理(如代理PyPI官方源),同样可通过该方式查询代理包的详情
- 响应格式与PyPI官方JSON API完全一致,包含版本信息、依赖、发布时间等完整包详情
内容的提问来源于stack exchange,提问作者DilLip_Chowdary
相关产品推荐
相关产品推荐

