← Artifacts / artifacts / get-started
REST API
Vytvořte repozitář Artifacts pomocí REST API a k nahrávání a stahování obsahu poté použijte běžný klient Git.
Na konci tohoto průvodce vytvoříte repozitář uvnitř jmenného prostoru, zjistíte jeho vzdálenou adresu URL, odešlete commit a stejný repozitář naklonujete pomocí standardního klienta Git.
Začněte čtením Jmenné prostory, pak zvolte název namespace, který budete používat. Tento návod používá default v příkladech.
Předpoklady
Budete potřebovat:
- Přístup ke službě Artifacts.
- Název jmenného prostoru, například
default. - A Token Cloudflare API hodnotou Artefakty > Čtení a Artefakty > Úprava.
- Místní
gitklient. jq, pokud chcete automaticky extrahovat pole z odpovědi.
Pokud chcete vytvářet a spravovat repozitáře přímo z Workeru (místo volání REST API), použijte Úvodní příručka pro Workers.
1. Exportujte proměnné prostředí
Nastavte následující proměnné pomocí ID vašeho účtu Cloudflare a API tokenu Artifacts:
export ARTIFACTS_NAMESPACE="default"
export ARTIFACTS_REPO="starter-repo"
export ACCOUNT_ID="<YOUR_ACCOUNT_ID>"
export CLOUDFLARE_API_TOKEN="<YOUR_API_TOKEN>"
export ARTIFACTS_BASE_URL="https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/artifacts/namespaces/$ARTIFACTS_NAMESPACE"Při každém spuštění tohoto návodu použijte jedinečný název repozitáře.
Artifacts pro požadavky API používá ověřování Bearer:
Authorization: Bearer $CLOUDFLARE_API_TOKEN2. Vytvořte repozitář
Repozitář v tomto jmenném prostoru můžete vytvořit některým z těchto způsobů:
curl --request POST "$ARTIFACTS_BASE_URL/repos" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data "{\"name\":\"$ARTIFACTS_REPO\"}"Odpověď vypadá následovně:
{
"result": {
"id": "repo_123",
"name": "starter-repo",
"description": null,
"default_branch": "main",
"remote": "https://<ACCOUNT_ID>.artifacts.cloudflare.net/git/default/starter-repo.git",
"token": "art_v1_0123456789abcdef0123456789abcdef01234567?expires=1760000000"
},
"success": true,
"errors": [],
"messages": []
}Odpověď obsahuje dvě hodnoty, které budete potřebovat pro operace Git:
remote: vzdálená URL Git pro tento repozitář.<ACCOUNT_ID>bude vaše skutečné ID účtu Cloudflare. Tuto URL použijte pro všechny příkazy Git (git push, git clone). Všimněte si, že se jedná o jinou URL než tu z REST API, kterou jste použili k vytvoření repozitáře.token: krátkodobé přístupové údaje pro operace Git. Token má svou platnost zakódovanou přímo v?expires=příponu jako unixové časové razítko.
Zkopírujte remote a token hodnoty z result do lokálních proměnných shellu:
export ARTIFACTS_REMOTE="<PASTE_RESULT_REMOTE_FROM_RESPONSE>"
export ARTIFACTS_TOKEN="<PASTE_RESULT_TOKEN_FROM_RESPONSE>"Odpověď na vytvoření zachyťte jednou a pole z ní extrahujte pomocí jq:
CREATE_RESPONSE=$(curl --silent --request POST "$ARTIFACTS_BASE_URL/repos" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data "{\"name\":\"$ARTIFACTS_REPO\"}")
export ARTIFACTS_REMOTE=$(printf '%s' "$CREATE_RESPONSE" | jq -r '.result.remote')
export ARTIFACTS_TOKEN=$(printf '%s' "$CREATE_RESPONSE" | jq -r '.result.token')3. Znovu získejte URL repozitáře
Pokud budete později potřebovat obnovit vzdálenou adresu URL, stáhněte si metadata repozitáře:
curl "$ARTIFACTS_BASE_URL/repos/$ARTIFACTS_REPO" \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN"{
"result": {
"id": "repo_123",
"name": "starter-repo",
"description": null,
"default_branch": "main",
"created_at": "<ISO_TIMESTAMP>",
"updated_at": "<ISO_TIMESTAMP>",
"last_push_at": null,
"source": null,
"read_only": false,
"remote": "https://<ACCOUNT_ID>.artifacts.cloudflare.net/git/default/starter-repo.git"
},
"success": true,
"errors": [],
"messages": []
}Tento endpoint vrací pouze metadata repozitáře. Pokud potřebujete nový token repozitáře, vydejte ho pomocí POST /tokens.
4. Odešlete (push) svůj první commit pomocí git
Vytvoření místního repozitáře a jeho odeslání příkazem push do remote Artifacts:
mkdir artifacts-demo
cd artifacts-demo
git init -b main
printf '# Artifacts demo\n' > README.md
git add README.md
git commit -m "Initial commit"
git remote add origin "$ARTIFACTS_REMOTE"
git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" push -u origin mainPoužívá se tak doporučená podoba založená na hlavičce, díky které token nezůstává součástí URL adresy vzdáleného úložiště.
Pokud pro krátkodobý příkaz potřebujete samostatnou adresu URL vzdáleného repozitáře, sestavte ji místo toho z token secret:
export ARTIFACTS_TOKEN_SECRET="${ARTIFACTS_TOKEN%%\?expires=*}"
export ARTIFACTS_AUTH_REMOTE="https://x:${ARTIFACTS_TOKEN_SECRET}@${ARTIFACTS_REMOTE#https://}"
git push "$ARTIFACTS_AUTH_REMOTE" HEAD:main5. Stáhněte (pull) repozitář pomocí běžného klienta git
Stejný repozitář naklonujte do druhého adresáře:
cd ..
git -c http.extraHeader="Authorization: Bearer $ARTIFACTS_TOKEN" clone "$ARTIFACTS_REMOTE" artifacts-clone
git -C artifacts-clone log --oneline -1Měli byste vidět commit, který jste odeslali v předchozím kroku.
Repozitář můžete také naklonovat pomocí samostatné vzdálené adresy URL určené pro krátkodobý příkaz:
git clone "$ARTIFACTS_AUTH_REMOTE" artifacts-clone