स्टोरेज नीतियाँ और प्रतिधारण
कोटा, उपयोग, प्रतिधारण नीतियाँ, उनका पूर्वावलोकन और चलाना, क्लीनअप और आर्टिफ़ैक्ट हटाना।
इस समूह के ऑपरेशन, उनके एक्सेस नियम, पुनः प्रयास नियम, पैरामीटर और जवाबों के साथ। हर अनुरोध में एक कुंजी होती है: Authorization: Bearer <कुंजी> (“प्रमाणीकरण” देखें)।
ऑपरेशन
जाँचें कि आर्टिफ़ैक्ट हटाया जा सकता है या नहीं
GET HEAD /api/v1/repositories/{repository}/artifacts/{id}/deletion
एक्सेस: रिपॉज़िटरी अनुमति: artifact.delete · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
आर्टिफ़ैक्ट का नाम, आकार, प्रकाशन समय, वर्तमान annotationRevision और वे blockers लौटाता है जो उसे हटाए जाने से रोकेंगे: reference (कोई बाहरी संदर्भ, या किसी कंटेनर इमेज, Git LFS अथवा npm द्वारा उपयोग), asset_history (वर्तमान या पुराना फ़ाइल पथ संशोधन), attachment_history या promotion_stage। कुछ नहीं बदलता; संशोधन को deleteArtifact में expectedAnnotationRevision के रूप में दें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
id | पथ | string (uuid) | हाँ | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
id | string (uuid) | हाँ | — |
name | string | हाँ | 1–240 वर्ण |
size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
publishedAt | string (date-time) | हाँ | — |
annotationRevision | integer | हाँ | 0–2147483647 |
blockers | string का ऐरे | हाँ | अधिकतम 4 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: reference, asset_history, attachment_history, protected_label, promotion_stage |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/artifacts/$ID/deletion" \
-H "Authorization: Bearer $ARKVORY_TOKEN"प्रतिधारण के उम्मीदवारों का पूर्वावलोकन करें
POST /api/v1/repositories/{repository}/retention/preview
एक्सेस: रिपॉज़िटरी अनुमति: artifact.delete · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
criteria.publishedBefore से पहले जारी प्रकाशित आर्टिफ़ैक्ट (अतीत का UTC समय, मिलीसेकंड सहित) ID के क्रम में सूचीबद्ध करता है, प्रत्येक के साथ उसका एनोटेशन संशोधन और ब्लॉकर; protected_label का अर्थ है कि criteria.protectedLabels (अधिकतम 32 की स्पष्ट सूची) में से कोई लेबल लगा है। प्रत्येक पृष्ठ में limit आइटम होते हैं (1–100, डिफ़ॉल्ट 50); after में next देकर आगे बढ़ें। कुछ आरक्षित नहीं होता: हटाने के आइटम चुनें और उन्हें उनके संशोधनों के साथ applyRetention को दें, जो उन्हें फिर जाँचता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
criteria | object | हाँ | — |
criteria.publishedBefore | string (date-time) | हाँ | पैटर्न: ^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\.\d{3}Z$ |
criteria.protectedLabels | string का ऐरे | हाँ | अधिकतम 32 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: 1–64 वर्ण |
limit | integer | नहीं | 1–100 |
after | string (uuid) | नहीं | — |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | 1–240 वर्ण |
items[].size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].publishedAt | string (date-time) | हाँ | — |
items[].annotationRevision | integer | हाँ | 0–2147483647 |
items[].blockers | string का ऐरे | हाँ | अधिकतम 4 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: reference, asset_history, attachment_history, protected_label, promotion_stage |
next | string (uuid) | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/retention/preview" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"criteria":{"publishedBefore":"2026-01-01T00:00:00.000Z","protectedLabels":[]}}'चुने हुए प्रतिधारण उम्मीदवार हटाएँ
POST /api/v1/repositories/{repository}/retention/apply
एक्सेस: रिपॉज़िटरी अनुमति: artifact.delete · पुनः प्रयास: दोहराना सुरक्षित है: एक जैसे अनुरोध का प्रभाव एक जैसा होता है
previewRetention से चुने गए 1–100 आर्टिफ़ैक्ट (items, जिनमें id और expectedAnnotationRevision) को उसी criteria के विरुद्ध फिर जाँचता है और पात्र आर्टिफ़ैक्ट को एक ट्रांज़ैक्शन में तार्किक रूप से हटाता है। हर आइटम को एक outcome मिलता है: deleted, already_deleted, changed (एनोटेशन बदल गए), not_eligible (बहुत देर से प्रकाशित), protected अपने ब्लॉकर के साथ, या not_found। बाइट तब तक आरक्षित रहते हैं जब तक रिपॉज़िटरी का ऑनलाइन क्लीनअप उन्हें वापस नहीं ले लेता।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
criteria | object | हाँ | — |
criteria.publishedBefore | string (date-time) | हाँ | पैटर्न: ^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\.\d{3}Z$ |
criteria.protectedLabels | string का ऐरे | हाँ | अधिकतम 32 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: 1–64 वर्ण |
items | object का ऐरे | हाँ | 1–100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].expectedAnnotationRevision | integer | हाँ | 0–2147483647 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | 1–100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].outcome | string | हाँ | इनमें से एक: deleted, already_deleted, protected, changed, not_eligible, not_found |
items[].blockers | string का ऐरे | हाँ | अधिकतम 4 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: इनमें से एक: reference, asset_history, attachment_history, protected_label, promotion_stage |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/retention/apply" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"criteria":{"publishedBefore":"2026-01-01T00:00:00.000Z","protectedLabels":[]},"items":[{"id":"00000000-0000-4000-8000-000000000000","expectedAnnotationRevision":0}]}'स्टोरेज नीति प्राप्त करें
GET HEAD /api/v1/repositories/{repository}/storage/policy
एक्सेस: रिपॉज़िटरी अनुमति: storage.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
रिपॉज़िटरी की स्वचालित क्लीनअप और कोटा सेटिंग उनके revision के साथ लौटाता है, साथ ही अगला और पिछला निर्धारित रन, पिछले रन ने कितने बिल्ड हटाए और उसकी त्रुटि। डिफ़ॉल्ट रूप से नीति अक्षम होती है और रिपॉज़िटरी का कोई कोटा नहीं होता (पूरे सर्वर की क्षमता फिर भी लागू रहती है)।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.grouping | string | हाँ | इनमें से एक: package-channel, package, repository |
policy.keepLast | integer | हाँ | 1–100000 |
policy.channels | object का ऐरे | हाँ | अधिकतम 32 आइटम |
policy.channels[].label | string | हाँ | 1–64 वर्ण |
policy.channels[].keepLast | integer | हाँ | 1–100000 |
policy.protectedLabels | string का ऐरे | हाँ | अधिकतम 32 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: 1–64 वर्ण |
policy.minAgeHours | integer | हाँ | 0–87600 |
policy.intervalMinutes | integer | हाँ | 1–10080 |
policy.quotaBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
policy.warningPercent | integer | हाँ | 1–98 |
policy.criticalPercent | integer | हाँ | 2–99 |
nextRunAt | string (date-time) | हाँ | null हो सकता है |
lastRunAt | string (date-time) | हाँ | null हो सकता है |
lastDeleted | integer | हाँ | 0–100 |
lastError | string | हाँ | अधिकतम 64 वर्ण; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/policy" \
-H "Authorization: Bearer $ARKVORY_TOKEN"स्टोरेज नीति प्रतिस्थापित करें
PUT /api/v1/repositories/{repository}/storage/policy
एक्सेस: रिपॉज़िटरी अनुमति: storage.manage · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
पूरी नीति प्रतिस्थापित करता है: प्रत्येक पैकेज, प्रत्येक चैनल लेबल (channels) या प्रत्येक रिपॉज़िटरी (grouping) के अंतिम keepLast पंजीकृत UPack बिल्ड रखें, protectedLabels वाले या minAgeHours से नए बिल्ड कभी न हटाएँ, हर intervalMinutes पर चलाएँ, और रिपॉज़िटरी को quotaBytes (दशमलव स्ट्रिंग, कोई सीमा न हो तो null) और उसकी चेतावनी सीमाओं से सीमित करें। expectedRevision वर्तमान संशोधन होना चाहिए, अन्यथा 409 revision_mismatch। सक्षम करने के लिए artifact.delete भी चाहिए और शेड्यूल कॉल करने वाली प्रबंधित कुंजी से बँध जाता है: वह कुंजी निरस्त होने, समाप्त होने या इन अनुमतियों को खोने पर निर्धारित हटाना तब तक रुका रहता है जब तक नीति किसी अन्य कुंजी से सहेजी नहीं जाती। सामान्य फ़ाइलें कोटा में गिनी जाती हैं, पर उससे कभी हटाई नहीं जातीं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.grouping | string | हाँ | इनमें से एक: package-channel, package, repository |
policy.keepLast | integer | हाँ | 1–100000 |
policy.channels | object का ऐरे | हाँ | अधिकतम 32 आइटम |
policy.channels[].label | string | हाँ | 1–64 वर्ण |
policy.channels[].keepLast | integer | हाँ | 1–100000 |
policy.protectedLabels | string का ऐरे | हाँ | अधिकतम 32 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: 1–64 वर्ण |
policy.minAgeHours | integer | हाँ | 0–87600 |
policy.intervalMinutes | integer | हाँ | 1–10080 |
policy.quotaBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
policy.warningPercent | integer | हाँ | 1–98 |
policy.criticalPercent | integer | हाँ | 2–99 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.grouping | string | हाँ | इनमें से एक: package-channel, package, repository |
policy.keepLast | integer | हाँ | 1–100000 |
policy.channels | object का ऐरे | हाँ | अधिकतम 32 आइटम |
policy.channels[].label | string | हाँ | 1–64 वर्ण |
policy.channels[].keepLast | integer | हाँ | 1–100000 |
policy.protectedLabels | string का ऐरे | हाँ | अधिकतम 32 आइटम; कोई आइटम दोहराया न जाए; हर आइटम: 1–64 वर्ण |
policy.minAgeHours | integer | हाँ | 0–87600 |
policy.intervalMinutes | integer | हाँ | 1–10080 |
policy.quotaBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
policy.warningPercent | integer | हाँ | 1–98 |
policy.criticalPercent | integer | हाँ | 2–99 |
nextRunAt | string (date-time) | हाँ | null हो सकता है |
lastRunAt | string (date-time) | हाँ | null हो सकता है |
lastDeleted | integer | हाँ | 0–100 |
lastError | string | हाँ | अधिकतम 64 वर्ण; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/policy" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"policy":{"enabled":false,"grouping":"package-channel","keepLast":1,"channels":[],"protectedLabels":[],"minAgeHours":0,"intervalMinutes":1,"quotaBytes":"1024","warningPercent":1,"criticalPercent":2}}'रिपॉज़िटरी का स्टोरेज उपयोग प्राप्त करें
GET HEAD /api/v1/repositories/{repository}/storage/usage
एक्सेस: रिपॉज़िटरी अनुमति: storage.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
रिपॉज़िटरी द्वारा आरक्षित बाइट दशमलव स्ट्रिंग के रूप में लौटाता है: प्रकाशित, लंबित अपलोड और सेवामुक्त (हटाए गए या रद्द किए गए, अभी वापस नहीं लिए गए), उनका योग reservedBytes, कोटा और एक state (unlimited, normal, warning, critical, exceeded)। यह कोटा के विरुद्ध गिना जाने वाला तार्किक आरक्षण है, डिस्क पर प्रयुक्त स्थान नहीं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
publishedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
pendingBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
retiredBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
reservedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
quotaBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
state | string | हाँ | इनमें से एक: unlimited, normal, warning, critical, exceeded |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/usage" \
-H "Authorization: Bearer $ARKVORY_TOKEN"पूर्वावलोकन करें कि स्टोरेज नीति क्या हटाएगी
GET HEAD /api/v1/repositories/{repository}/storage/preview
एक्सेस: रिपॉज़िटरी अनुमति: artifact.delete · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
अधिकतम 100 पंजीकृत बिल्ड लौटाता है जिन्हें सहेजी हुई नीति अभी हटा देगी (नीति अक्षम होने पर भी), नीति revision और hasMore के साथ; संदर्भों, फ़ाइल पथों, अटैचमेंट, संरक्षित लेबल या आयु के कारण रखे गए बिल्ड छोड़ दिए जाते हैं। कुछ आरक्षित नहीं होता: रन बिल्ड को फिर से क्रम में लगाता है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].name | string | हाँ | अधिकतम 240 वर्ण |
items[].size | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].publishedAt | string (date-time) | हाँ | — |
items[].annotationRevision | integer | हाँ | 0–2147483647 |
items[].blockers | string का ऐरे | हाँ | अधिकतम 0 आइटम |
hasMore | boolean | हाँ | — |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/preview" \
-H "Authorization: Bearer $ARKVORY_TOKEN"स्टोरेज नीति अभी चलाएँ
POST /api/v1/repositories/{repository}/storage/run
एक्सेस: रिपॉज़िटरी अनुमति: storage.manage, artifact.delete · पुनः प्रयास: अपने-आप न दोहराएँ
शेड्यूल की प्रतीक्षा करने के बजाय सक्षम नीति का एक बैच तुरंत चलाता है: वह बिल्ड को फिर क्रम में लगाता है, अनुमतियाँ और निर्भरताएँ जाँचता है, और अधिकतम 100 को तार्किक रूप से हटाता है, हर एक का परिणाम लौटाते हुए। expectedRevision नीति का वर्तमान संशोधन होना चाहिए और नीति सक्षम होनी चाहिए, अन्यथा 409। बाइट बाद में रिपॉज़िटरी के ऑनलाइन क्लीनअप द्वारा वापस लिए जाते हैं, जिसकी अपनी नीति है (setCleanup)।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483647 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].id | string (uuid) | हाँ | — |
items[].outcome | string | हाँ | इनमें से एक: deleted, already_deleted, protected, changed, not_eligible, not_found |
items[].blockers | string का ऐरे | हाँ | अधिकतम 4 आइटम; हर आइटम: इनमें से एक: reference, asset_history, attachment_history, protected_label, promotion_stage |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/run" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0}'रिपॉज़िटरी की स्टोरेज घटनाएँ सूचीबद्ध करें
GET HEAD /api/v1/repositories/{repository}/storage/events
एक्सेस: रिपॉज़िटरी अनुमति: diagnostics.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
क्रम संख्या after (डिफ़ॉल्ट 0) के बाद स्टोरेज नीतियों, कोटा, प्रतिधारण और क्लीनअप की अधिकतम 100 नैदानिक घटनाएँ, सबसे पुरानी पहले, लौटाता है, प्रत्येक के साथ स्तर, कोड और कुछ विवरण; level (info, warning, error) उन्हें फ़िल्टर करता है, after में next देकर आगे बढ़ें। प्रति रिपॉज़िटरी केवल नवीनतम 1000 और कुल मिलाकर 20 000 घटनाएँ रखी जाती हैं, इसलिए लंबे समय तक रखने के लिए उन्हें एक्सपोर्ट करें।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
after | क्वेरी | string | नहीं | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
level | क्वेरी | string | नहीं | इनमें से एक: info, warning, error |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
items | object का ऐरे | हाँ | अधिकतम 100 आइटम |
items[].sequence | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
items[].occurredAt | string (date-time) | हाँ | — |
items[].level | string | हाँ | इनमें से एक: info, warning, error |
items[].code | string | हाँ | अधिकतम 96 वर्ण |
items[].details | string | integer का मैप | हाँ | अधिकतम 16 प्रविष्टियाँ |
next | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है; null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/events" \
-H "Authorization: Bearer $ARKVORY_TOKEN"ऑनलाइन क्लीनअप की सेटिंग प्राप्त करें
GET HEAD /api/v1/repositories/{repository}/storage/cleanup
एक्सेस: रिपॉज़िटरी अनुमति: storage.read · पुनः प्रयास: दोहराना सुरक्षित है (पढ़ना)
रिपॉज़िटरी की ऑनलाइन क्लीनअप नीति उसके revision (enabled, graceHours, batchSize, intervalSeconds, delayMilliseconds) के साथ लौटाता है, साथ ही पिछला और अगला रन, और पिछले बैच ने कितने ऑब्जेक्ट वापस लिए, टाले या विफल किए तथा कितने बाइट मुक्त हुए। क्लीनअप ही रद्द किए गए अपलोड और हटाए गए आर्टिफ़ैक्ट को भौतिक रूप से हटाता है; यह डिफ़ॉल्ट रूप से बंद है।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.graceHours | integer | हाँ | 0–8760 |
policy.batchSize | integer | हाँ | 1–100 |
policy.intervalSeconds | integer | हाँ | 5–86400 |
policy.delayMilliseconds | integer | हाँ | 0–1000 |
lastRunAt | string (date-time) | हाँ | null हो सकता है |
nextRunAt | string (date-time) | हाँ | null हो सकता है |
lastCollected | integer | हाँ | 0–100 |
lastDeferred | integer | हाँ | 0–100 |
lastFailed | integer | हाँ | 0–100 |
lastReclaimedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
lastError | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 409, 422, 503, 507
उदाहरण
curl -X GET "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/cleanup" \
-H "Authorization: Bearer $ARKVORY_TOKEN"ऑनलाइन क्लीनअप कॉन्फ़िगर करें
PUT /api/v1/repositories/{repository}/storage/cleanup
एक्सेस: रिपॉज़िटरी अनुमति: storage.manage · पुनः प्रयास: केवल अपेक्षित संशोधन के साथ दोहराएँ (compare-and-swap)
सर्वर चलते समय क्लीनअप नीति प्रतिस्थापित करता है: enabled (रोकने के लिए भी), graceHours (0–8760, हटाई गई सामग्री कितनी देर रुकी रहती है), batchSize (1–100 ऑब्जेक्ट), intervalSeconds (5–86400) और delayMilliseconds (ऑब्जेक्ट के बीच 0–1000)। expectedRevision वर्तमान संशोधन होना चाहिए (पहले परिवर्तन से पहले 0), अन्यथा 409 revision_mismatch। परिवर्तन ऑब्जेक्ट के बीच प्रभावी होता है, किसी के बीच में कभी नहीं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.graceHours | integer | हाँ | 0–8760 |
policy.batchSize | integer | हाँ | 1–100 |
policy.intervalSeconds | integer | हाँ | 5–86400 |
policy.delayMilliseconds | integer | हाँ | 0–1000 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.graceHours | integer | हाँ | 0–8760 |
policy.batchSize | integer | हाँ | 1–100 |
policy.intervalSeconds | integer | हाँ | 5–86400 |
policy.delayMilliseconds | integer | हाँ | 0–1000 |
lastRunAt | string (date-time) | हाँ | null हो सकता है |
nextRunAt | string (date-time) | हाँ | null हो सकता है |
lastCollected | integer | हाँ | 0–100 |
lastDeferred | integer | हाँ | 0–100 |
lastFailed | integer | हाँ | 0–100 |
lastReclaimedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
lastError | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X PUT "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/cleanup" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0,"policy":{"enabled":false,"graceHours":0,"batchSize":1,"intervalSeconds":5,"delayMilliseconds":0}}'क्लीनअप बैच अभी माँगें
POST /api/v1/repositories/{repository}/storage/cleanup/run
एक्सेस: रिपॉज़िटरी अनुमति: storage.manage · पुनः प्रयास: अपने-आप न दोहराएँ
सक्षम क्लीनअप नीति का अगला बैच तुरंत शुरू होने के लिए निर्धारित करता है; उत्तर क्लीनअप की स्थिति है, और बाइट तभी मुक्त होते हैं जब बैच चल चुका हो (देखें getCleanup में lastRunAt)। expectedRevision वर्तमान संशोधन होना चाहिए; अक्षम क्लीनअप पर 409 state_conflict। जिन ऑब्जेक्ट को पढ़ा या लिखा जा रहा है वे बाद के बैच तक टाल दिए जाते हैं।
पैरामीटर
| नाम | स्थान | प्रकार | आवश्यक | नियम |
|---|---|---|---|---|
repository | पथ | string | हाँ | पैटर्न: ^[a-z0-9][a-z0-9_-]{0,63}$ |
अनुरोध बॉडी (application/json)
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
expectedRevision | integer | हाँ | 0–2147483647 |
प्रतिक्रिया 200
| फ़ील्ड | प्रकार | आवश्यक | नियम |
|---|---|---|---|
revision | integer | हाँ | 0–2147483647 |
policy | object | हाँ | — |
policy.enabled | boolean | हाँ | — |
policy.graceHours | integer | हाँ | 0–8760 |
policy.batchSize | integer | हाँ | 1–100 |
policy.intervalSeconds | integer | हाँ | 5–86400 |
policy.delayMilliseconds | integer | हाँ | 0–1000 |
lastRunAt | string (date-time) | हाँ | null हो सकता है |
nextRunAt | string (date-time) | हाँ | null हो सकता है |
lastCollected | integer | हाँ | 0–100 |
lastDeferred | integer | हाँ | 0–100 |
lastFailed | integer | हाँ | 0–100 |
lastReclaimedBytes | string | हाँ | दशमलव अंकों में पूर्णांक, स्ट्रिंग के रूप में भेजा जाता है |
lastError | string | हाँ | null हो सकता है |
प्रतिक्रियाएँ: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507
उदाहरण
curl -X POST "$ARKVORY_URL/api/v1/repositories/$REPOSITORY/storage/cleanup/run" \
-H "Authorization: Bearer $ARKVORY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"expectedRevision":0}'