सामग्री पर जाएँ

पथ वाली फ़ाइलें ​

रिपॉज़िटरी में पथ से पहचानी जाने वाली फ़ाइलें: संशोधन, इतिहास, पुनर्स्थापना और एक ही अनुरोध में raw फ़ाइलें।

इस समूह के ऑपरेशन, उनके एक्सेस नियम, पुनः प्रयास नियम, पैरामीटर और जवाबों के साथ। हर अनुरोध में एक कुंजी होती है: Authorization: Bearer <कुंजी> (“प्रमाणीकरण” देखें)।

ऑपरेशन ​

उपसर्ग से फ़ाइल पथ सूचीबद्ध करें ​

GET HEAD /api/v1/repositories/{repository}/assets

एक्सेस: रिपॉज़िटरी अनुमति: asset.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

हर वह फ़ाइल पथ लौटाता है जो prefix से शुरू होता है (शाब्दिक, पैटर्न नहीं; सभी के लिए खाली), पथ के क्रम में, प्रत्येक के साथ उसका वर्तमान संशोधन और आर्टिफ़ैक्ट ID। इसमें पृष्ठांकन नहीं है: 1000 से अधिक मिलान पर 400 मिलता है जो संकरा उपसर्ग माँगता है, इसलिए बड़े वृक्षों के लिए listAssetPage को प्राथमिकता दें।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
prefixक्वेरीstringनहीं—

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
itemsobject का ऐरेनहीं—
items[].pathstringहाँ—
items[].revisionintegerहाँ1–2147483647
items[].artifactIdstring (uuid)हाँ—

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/assets" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

फ़ाइल पथ पृष्ठ-दर-पृष्ठ सूचीबद्ध करें ​

GET HEAD /api/v1/repositories/{repository}/assets/page

एक्सेस: रिपॉज़िटरी अनुमति: asset.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

वर्तमान फ़ाइल पथ लौटाता है जो prefix से शुरू होते हैं (शाब्दिक; सभी के लिए खाली), UTF-8 बाइट क्रम में, प्रत्येक के साथ उसका वर्तमान संशोधन और आर्टिफ़ैक्ट ID। प्रत्येक पृष्ठ में limit आइटम होते हैं (1–100, डिफ़ॉल्ट 50); अपारदर्शी next को after में देकर आगे बढ़ें। पृष्ठ स्नैपशॉट नहीं हैं: अनुरोधों के बीच बदले पथ अपने नए संशोधन के साथ दिख सकते हैं या अगले पास तक छूट सकते हैं।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
prefixक्वेरीstringनहींअधिकतम 1024 वर्ण; डिफ़ॉल्ट ``; Case-sensitive literal prefix; % and _ are ordinary characters.
afterक्वेरीstringनहींपैटर्न: ^[A-Za-z0-9_-]+$; 1–8192 वर्ण
limitक्वेरीintegerनहीं1–100; डिफ़ॉल्ट 50

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
itemsobject का ऐरेहाँअधिकतम 100 आइटम
items[].pathstringहाँ—
items[].revisionintegerहाँ1–2147483647
items[].artifactIdstring (uuid)हाँ—
nextstringहाँपैटर्न: ^[A-Za-z0-9_-]+$; 1–8192 वर्ण; null हो सकता है; रिपॉज़िटरी और उपसर्ग से बँधा अपारदर्शी कर्सर; अंत में null। यह कभी पहुँच नहीं देता।

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/assets/page" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

फ़ाइल पथ का वर्तमान संशोधन प्राप्त करें ​

GET HEAD /api/v1/repositories/{repository}/asset

एक्सेस: रिपॉज़िटरी अनुमति: asset.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

path का वर्तमान revision और उस आर्टिफ़ैक्ट की ID लौटाता है जिसकी ओर वह इंगित करता है; अज्ञात पथ पर 404 मिलता है। पथ में / से अलग किए गए खंडों में 1–1024 वर्ण होते हैं, बिना खाली, . या .. खंडों के, और बिना \, : या नियंत्रण वर्णों के। बाइट downloadAssetContent से डाउनलोड करें, या संशोधन को setAsset में expectedRevision के रूप में दें।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
pathक्वेरीstringहाँ—

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
revisionintegerहाँ1–2147483647
artifactIdstring (uuid)हाँ—

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset?path=$PATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

फ़ाइल पथ को आर्टिफ़ैक्ट की ओर इंगित करें ​

PUT /api/v1/repositories/{repository}/asset

एक्सेस: रिपॉज़िटरी अनुमति: asset.write, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)

path को उसी रिपॉज़िटरी के प्रकाशित आर्टिफ़ैक्ट का नाम बनाता है, नए संशोधन के रूप में; expectedRevision पथ बनाने के लिए 0 है और बदलने के लिए वर्तमान संशोधन, अन्यथा 409 revision_mismatch। पिछले संशोधन इतिहास में रहते हैं और उनके आर्टिफ़ैक्ट को हटाए जाने से बचाए रखते हैं। बाइट सहेजने और उन्हें एक ही अनुरोध में नाम देने के लिए putRawFile का उपयोग करें।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$

अनुरोध बॉडी (application/json)

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
artifactIdstring (uuid)हाँ—
expectedRevisionintegerहाँ0–2147483646

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
revisionintegerहाँ1–2147483647
artifactIdstring (uuid)हाँ—

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

उदाहरण

bash
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"path":"<path>","artifactId":"00000000-0000-4000-8000-000000000000","expectedRevision":0}'

फ़ाइल पथ के संशोधन सूचीबद्ध करें ​

GET HEAD /api/v1/repositories/{repository}/asset/history

एक्सेस: रिपॉज़िटरी अनुमति: asset.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

path के संशोधन, सबसे नया पहले, प्रति पृष्ठ 50, लौटाता है; प्रत्येक के साथ उसका आर्टिफ़ैक्ट, कर्ता, समय और, पुनर्स्थापना के लिए, वह sourceRevision जिससे उसे कॉपी किया गया (सर्वर के शुरुआती संस्करणों द्वारा दर्ज संशोधनों के लिए कर्ता और समय null हैं)। before में next देकर आगे बढ़ें। अज्ञात पथ पर 404 मिलता है।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
pathक्वेरीstringहाँ—
beforeक्वेरीintegerनहीं1–2147483647; Only revisions strictly smaller than this value

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
itemsobject का ऐरेहाँअधिकतम 50 आइटम
items[].pathstringहाँ—
items[].revisionintegerहाँ1–2147483647
items[].artifactIdstring (uuid)हाँ—
items[].actorstringहाँnull हो सकता है; माइग्रेशन 4 से पहले दर्ज इतिहास के लिए null
items[].createdAtstring (date-time)हाँnull हो सकता है; माइग्रेशन 4 से पहले दर्ज इतिहास के लिए null
items[].sourceRevisionintegerहाँ1–2147483647; null हो सकता है; पुनर्स्थापित किया गया संशोधन; साधारण प्रतिस्थापन के लिए null
nextintegerहाँ1–2147483647; null हो सकता है; कर्सर से पहले का (कर्सर शामिल नहीं); अंत में null

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset/history?path=$PATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

फ़ाइल पथ का एक संशोधन प्राप्त करें ​

GET HEAD /api/v1/repositories/{repository}/asset/revision

एक्सेस: रिपॉज़िटरी अनुमति: asset.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

path का संशोधन revision उसकी आर्टिफ़ैक्ट ID, कर्ता, समय और पुनर्स्थापना स्रोत के साथ लौटाता है। संशोधन कभी नहीं बदलते, इसलिए आर्टिफ़ैक्ट ID कैश की जा सकती है; उसे downloadArtifact से डाउनलोड करें। अनुपस्थित पथ या संशोधन पर 404 मिलता है।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
pathक्वेरीstringहाँ—
revisionक्वेरीintegerहाँ1–2147483647

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
revisionintegerहाँ1–2147483647
artifactIdstring (uuid)हाँ—
actorstringहाँnull हो सकता है; माइग्रेशन 4 से पहले दर्ज इतिहास के लिए null
createdAtstring (date-time)हाँnull हो सकता है; माइग्रेशन 4 से पहले दर्ज इतिहास के लिए null
sourceRevisionintegerहाँ1–2147483647; null हो सकता है; पुनर्स्थापित किया गया संशोधन; साधारण प्रतिस्थापन के लिए null

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset/revision?path=$PATH&revision=$REVISION" \
  -H "Authorization: Bearer $ARKVORY_TOKEN"

फ़ाइल पथ का पिछला संशोधन पुनर्स्थापित करें ​

POST /api/v1/repositories/{repository}/asset/restore

एक्सेस: रिपॉज़िटरी अनुमति: asset.restore, asset.read, artifact.read; फ़ाइल कुंजियाँ: read, write · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)

path का नया संशोधन जोड़ता है जो sourceRevision के आर्टिफ़ैक्ट की ओर इंगित करता है; कुछ कॉपी नहीं होता और कोई संशोधन नहीं हटता। expectedRevision वर्तमान संशोधन होना चाहिए (कम से कम 1), अन्यथा 409 revision_mismatch — इसलिए सफल हो चुकी पुनर्स्थापना को दोहराने पर दूसरी पुनर्स्थापना के बजाय 409 मिलता है। नया संशोधन sourceRevision दर्ज करता है, और परिवर्तन उसी ट्रांज़ैक्शन में ऑडिट किया जाता है।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$

अनुरोध बॉडी (application/json)

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
sourceRevisionintegerहाँ1–2147483647
expectedRevisionintegerहाँ1–2147483646

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
revisionintegerहाँ1–2147483647
artifactIdstring (uuid)हाँ—

प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

उदाहरण

bash
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset/restore" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"path":"<path>","sourceRevision":1,"expectedRevision":1}'

पथ से फ़ाइल डाउनलोड करें ​

GET HEAD /api/v1/repositories/{repository}/asset/content

एक्सेस: रिपॉज़िटरी अनुमति: content.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

path को उसके वर्तमान संशोधन में निर्धारित (resolve) करता है और उस आर्टिफ़ैक्ट को downloadArtifact की तरह स्ट्रीम करता है, Range, If-Range, If-None-Match और HEAD के साथ। पथ हर अनुरोध पर निर्धारित होता है, इसलिए लौटाए गए ETag पर सेट If-Range से डाउनलोड जारी रखें: पथ के आगे बढ़ जाने पर उत्तर मिली-जुली फ़ाइल के बजाय पूरी नई फ़ाइल होती है। downloadRawFile वही करता है, पर पथ URL में होता है।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
RangeहेडरstringनहींSingle bytes range; multi-range is unsupported. HEAD ignores Range.
If-RangeहेडरstringनहींExact strong ETag; a mismatch causes a full response.
If-None-MatchहेडरstringनहींMatching ETag returns 304, including HEAD.
Arkvory-Download-Idहेडरstringनहींपैटर्न: ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time.
Arkvory-Queue-Ticketहेडरstringनहींअधिकतम 80 वर्ण; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored.
Arkvory-Download-Classहेडरstringनहींइनमें से एक: interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied.
pathक्वेरीstringहाँ—

प्रतिक्रियाएँ: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/asset/content?path=$PATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

एक अनुरोध में किसी पथ पर फ़ाइल अपलोड करें ​

PUT /api/v1/repositories/{repository}/raw/{assetPath}

एक्सेस: रिपॉज़िटरी अनुमति: upload.create, upload.write, upload.complete, asset.read, asset.write, artifact.read; फ़ाइल कुंजियाँ: write · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है

स्क्रिप्ट और CI के लिए (curl -T), किसी भी मीडिया प्रकार की अनुरोध बॉडी को URL के पथ के नए संशोधन के रूप में सहेजता है; उत्तर पथ, संशोधन और आर्टिफ़ैक्ट के साथ 201 है। X-Checksum-Sha256 और Content-Length होने पर बाइट सीधे स्टोरेज में स्ट्रीम होते हैं और सत्यापित किए जाते हैं; इनके बिना उन्हें पहले स्टेजिंग में रखकर हैश किया जाता है (दिए गए चेकसम से बॉडी न मिलने पर 422)। वर्तमान संशोधन के समान बाइट कुछ नहीं जोड़ते और created: false के साथ 200 लौटता है; If-None-Match: * केवल नया पथ बनाने देता है (पहले से मौजूद होने पर 409 already_exists), और उसी पथ पर लिखने वाले समवर्ती लेखक को 409 revision_mismatch मिलता है। बहुत बड़ी फ़ाइलों के लिए पुनः आरंभ योग्य अपलोड सत्र बेहतर हैं।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
assetPathपथstringहाँ1–1024 वर्ण; File path; may contain slashes (folders). No empty, "." or ".." segments, backslash or colon.
X-Checksum-Sha256हेडरstringनहींपैटर्न: ^[a-fA-F0-9]{64}$; SHA-256 of the body (64 hex digits); a mismatch stores nothing (422).
If-None-Matchहेडरstringनहींइनमें से एक: *; "*": store only when the path does not exist yet (409 already_exists).

अनुरोध बॉडी (application/octet-stream)

प्रतिक्रिया 200

फ़ील्डप्रकारआवश्यकनियम
pathstringहाँ—
revisionintegerहाँकम से कम 1
createdbooleanहाँ—
artifactobjectहाँ—
artifact.idstring (uuid)हाँ—
artifact.sizestringहाँदशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है
artifact.sha256stringहाँSHA-256: 64 लोअरकेस हेक्साडेसिमल अंक

प्रतिक्रियाएँ: 200, 201, 400, 401, 403, 404, 405, 409, 422, 503, 507

उदाहरण

bash
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/raw/$ASSETPATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -H "Content-Type: application/octet-stream" \
  --data-binary @file

URL पथ से फ़ाइल डाउनलोड करें ​

GET HEAD /api/v1/repositories/{repository}/raw/{assetPath}

एक्सेस: रिपॉज़िटरी अनुमति: content.read; फ़ाइल कुंजियाँ: read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)

URL में दिए पथ का वर्तमान संशोधन downloadArtifact की तरह स्ट्रीम करता है, Range, If-Range, If-None-Match, HEAD के साथ, और X-Arkvory-Artifact-Id आर्टिफ़ैक्ट का नाम बताता है। पथ हर अनुरोध पर निर्धारित होता है, इसलिए लौटाए गए ETag पर सेट If-Range से डाउनलोड जारी रखें, या आर्टिफ़ैक्ट को ID से डाउनलोड करें।

पैरामीटर

नामस्थानप्रकारआवश्यकनियम
repositoryपथstringहाँपैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$
assetPathपथstringहाँ1–1024 वर्ण; File path; may contain slashes (folders). No empty, "." or ".." segments, backslash or colon.
RangeहेडरstringनहींSingle bytes range; multi-range is unsupported. HEAD ignores Range.
If-RangeहेडरstringनहींExact strong ETag; a mismatch causes a full response.
If-None-MatchहेडरstringनहींMatching ETag returns 304, including HEAD.
Arkvory-Download-Idहेडरstringनहींपैटर्न: ^[A-Za-z0-9_-]{16,64}$; The client own id of one download, the same on every range of it: the queue keys the session by it instead of the client address, answers a waiting request at once with 503 download_queued, and may ask it to yield its place at a range boundary. Without it, a waiting request is held until its turn for a bounded time.
Arkvory-Queue-Ticketहेडरstringनहींअधिकतम 80 वर्ण; The last Arkvory-Queue-Ticket the server sent for this download: after a server restart the download takes its old turn. A ticket that is wrong, expired or of another download is ignored.
Arkvory-Download-Classहेडरstringनहींइनमें से एक: interactive, release, bulk, background; Queue class of the download. Only a class lower than the caller own one applies (people: interactive, services and links: release); an unknown value is 400. The response names the class applied.

प्रतिक्रियाएँ: 200, 206, 304, 400, 401, 403, 404, 409, 416, 422, 503, 507

उदाहरण

bash
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/raw/$ASSETPATH" \
  -H "Authorization: Bearer $ARKVORY_TOKEN" \
  -o file

Arkvory · ProAnimaStudio