commit ea6bc121a017a1d33e91a9649cc786e92150aa5c
parent 4a37e9dfdb7ff4a89e736649badc091e22d99a17
Author: Robin Bron <robin.bron@yourhosting.nl>
Date: Fri, 25 Sep 2026 00:52:54 +0200
Include x-amz-content-sha256 header for puts
Diffstat:
2 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/mk/bootstrap-repo.sh b/mk/bootstrap-repo.sh
@@ -86,10 +86,12 @@ rm -f ".SIGN.RSA.${KEYNAME}.rsa.pub" idxsig.tar idxsignotr.tar.gz
rm -rf "${ROOT}/build/work/.idxsig"
echo "==> publishing ${ARCH}/APKINDEX.tar.gz"
+sha=$(sha256sum APKINDEX.tar.gz | cut -d' ' -f1)
tmp_put=$(mktemp)
code=$(curl -sS -o "${tmp_put}" -w '%{http_code}' \
--aws-sigv4 "aws:amz:${BUCKET_REGION}:s3" \
--user "${BUCKET_ACCESS_KEY}:${BUCKET_SECRET_KEY}" \
+ -H "x-amz-content-sha256: ${sha}" \
-X PUT --upload-file APKINDEX.tar.gz \
"${url}") || { echo "bootstrap-repo.sh: upload failed" >&2; cat "${tmp_put}" >&2 2>/dev/null || true; rm -f "${tmp_put}"; exit 1; }
case "${code}" in 2*) rm -f "${tmp_put}"; echo "==> bootstrapped ${ARCH}/APKINDEX.tar.gz (${code})" ;; *) echo "bootstrap-repo.sh: upload returned HTTP ${code}" >&2; cat "${tmp_put}" >&2 2>/dev/null || true; rm -f "${tmp_put}"; exit 1 ;; esac
diff --git a/mk/publish.sh b/mk/publish.sh
@@ -78,9 +78,11 @@ put() {
return 0
fi
url="${BUCKET_ENDPOINT%/}/${BUCKET_NAME}/${key}"
+ sha=$(sha256sum "${src}" | cut -d' ' -f1)
code=$(curl -sS -o /dev/null -w '%{http_code}' \
--aws-sigv4 "aws:amz:${BUCKET_REGION}:s3" \
--user "${BUCKET_ACCESS_KEY}:${BUCKET_SECRET_KEY}" \
+ -H "x-amz-content-sha256: ${sha}" \
-X PUT --upload-file "${src}" \
"${url}") || die "upload failed: ${key}"
case "${code}" in