【发布时间】:2017-02-21 21:50:17
【问题描述】:
【问题讨论】:
-
我知道您专门询问了有关使用 curl 上传的问题,并且您已经得到了答案,但如果它与您相关,当使用 JFrog CLI 上传时,它会自动计算校验和并将其附加到上传请求。
标签: curl artifactory checksum
【问题讨论】:
标签: curl artifactory checksum
此功能目前没有很好的文档记录,在此页面上可以找到一个示例:
只需在 curl 命令中添加以下内容:"--header "X-Checksum-<type>:${CHECKSUM}"
Sha1
CHECKSUM=$(shasum -a 1 foo.zip | awk '{ print $1 }')
curl --header "X-Checksum-Sha1:${CHECKSUM}" --upload-file "foo.zip -u "admin:<apikey>" -v https://artifactory.example.com/foo/
MD5
CHECKSUM=$(md5sum foo.zip | awk '{ print $1 }')
curl --header "X-Checksum-MD5:${CHECKSUM}" --upload-file "foo.zip -u "admin:<apikey>" -v https://artifactory.example.com/foo/
或者同时提供两个校验和
ARTIFACT_MD5_CHECKSUM=$(md5sum foo.zip | awk '{print $1}')
ARTIFACT_SHA1_CHECKSUM=$(shasum -a 1 foo.zip | awk '{ print $1 }')
curl --upload-file "foo.zip" \
--header "X-Checksum-MD5:${ARTIFACT_MD5_CHECKSUM}" \
--header "X-Checksum-Sha1:${ARTIFACT_SHA1_CHECKSUM}" \
-u "admin:<apikey>" \
-v https://artifactory.example.com/foo/
不幸的是,使用 sha256 上传不适用于 curl because of a bug
【讨论】:
由于我不允许发表评论,因此我将发布澄清作为答案。
This comment 建议 Deploy Artifact by Checksum API 是有关带有校验和验证的上传的文档。但这仅对 Artifactory 中已存在的工件的上传有效。
As documented,它将拒绝带有 404 的新工件上传。
【讨论】:
这在 7.4.3 中适用于 MD5、SHA1 和 SHA256。
for file in $(find a_folder -type f)
do
ARTIFACT_MD5_CHECKSUM=$(md5sum $file | awk '{print $1}')
ARTIFACT_SHA1_CHECKSUM=$(shasum -a 1 $file | awk '{ print $1 }')
ARTIFACT_SHA256_CHECKSUM=$(shasum -a 256 $file | awk '{ print $1 }')
echo curl --upload-file $file \
--header "X-Checksum-MD5:${ARTIFACT_MD5_CHECKSUM}" \
--header "X-Checksum-Sha1:${ARTIFACT_SHA1_CHECKSUM}" \
--header "X-Checksum-Sha256:${ARTIFACT_SHA256_CHECKSUM}" \
-u "admin:${APIKEY}" \
-v http://URL/$file
done
【讨论】: