انتقل إلى المحتوى

سياسات التخزين والاحتفاظ ​

الحصص، والاستخدام، وسياسات الاحتفاظ ومعاينتها وتشغيلها، والتنظيف، وحذف المُخرَجات.

عمليات هذه المجموعة مع قاعدة الوصول وقاعدة إعادة المحاولة والمعلمات والاستجابات. يحمل كل طلب مفتاحًا: Authorization: Bearer <key> (راجع «المصادقة»).

العمليات ​

فحص إمكانية حذف مُخرَج ​

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

الحقلالنوعمطلوبالقواعد
idstring (uuid)نعم—
namestringنعمعدد الأحرف: 1–240
sizestringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
publishedAtstring (date-time)نعم—
annotationRevisionintegerنعم0–2147483647
blockersمصفوفة من stringنعمعدد العناصر: 4 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: إحدى القيم: reference, asset_history, attachment_history, protected_label, promotion_stage

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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 ماضٍ بالميلي ثانية)، مرتبةً حسب المعرّف، لكل منها مراجعة التعليقات التوضيحية والعوائق، وprotected_label تعني إحدى criteria.protectedLabels (قائمة صريحة حتى 32). تحتوي الصفحة على limit عنصرًا (من 1 إلى 100، والافتراضي 50)؛ وللمتابعة اضبط after على قيمة next. لا يُحجز شيء: اختر العناصر المراد حذفها ومرّرها مع مراجعاتها إلى applyRetention، الذي يفحصها من جديد.

المعلمات

الاسمالموضعالنوعمطلوبالقواعد
repositoryالمسارstringنعميطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$

نص الطلب (application/json)

الحقلالنوعمطلوبالقواعد
criteriaobjectنعم—
criteria.publishedBeforestring (date-time)نعميطابق النمط ^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d\.\d{3}Z$
criteria.protectedLabelsمصفوفة من stringنعمعدد العناصر: 32 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: عدد الأحرف: 1–64
limitintegerلا1–100
afterstring (uuid)لا—

الاستجابة 200

الحقلالنوعمطلوبالقواعد
itemsمصفوفة من objectنعمعدد العناصر: 100 كحد أقصى
items[].idstring (uuid)نعم—
items[].namestringنعمعدد الأحرف: 1–240
items[].sizestringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
items[].publishedAtstring (date-time)نعم—
items[].annotationRevisionintegerنعم0–2147483647
items[].blockersمصفوفة من stringنعمعدد العناصر: 4 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: إحدى القيم: reference, asset_history, attachment_history, protected_label, promotion_stage
nextstring (uuid)نعميمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

مثال

bash
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 · إعادة المحاولة: آمن للتكرار: الطلب نفسه يُحدث الأثر نفسه

يعيد فحص ما بين 1 و100 مُخرَج اختيرت من previewRetention (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)

الحقلالنوعمطلوبالقواعد
criteriaobjectنعم—
criteria.publishedBeforestring (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[].idstring (uuid)نعم—
items[].expectedAnnotationRevisionintegerنعم0–2147483647

الاستجابة 200

الحقلالنوعمطلوبالقواعد
itemsمصفوفة من objectنعمعدد العناصر: 1–100
items[].idstring (uuid)نعم—
items[].outcomestringنعمإحدى القيم: 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

مثال

bash
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

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.groupingstringنعمإحدى القيم: package-channel, package, repository
policy.keepLastintegerنعم1–100000
policy.channelsمصفوفة من objectنعمعدد العناصر: 32 كحد أقصى
policy.channels[].labelstringنعمعدد الأحرف: 1–64
policy.channels[].keepLastintegerنعم1–100000
policy.protectedLabelsمصفوفة من stringنعمعدد العناصر: 32 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: عدد الأحرف: 1–64
policy.minAgeHoursintegerنعم0–87600
policy.intervalMinutesintegerنعم1–10080
policy.quotaBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية; يمكن أن يكون null
policy.warningPercentintegerنعم1–98
policy.criticalPercentintegerنعم2–99
nextRunAtstring (date-time)نعميمكن أن يكون null
lastRunAtstring (date-time)نعميمكن أن يكون null
lastDeletedintegerنعم0–100
lastErrorstringنعمعدد الأحرف: 64 كحد أقصى; يمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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)

يستبدل السياسة كلها: الاحتفاظ بآخر keepLast من نسخ بناء UPack المسجّلة لكل حزمة، أو لكل تسمية قناة (channels)، أو لكل مستودع (grouping)، وعدم حذف protectedLabels ولا نسخ البناء الأحدث من minAgeHours، والتشغيل كل intervalMinutes، وتقييد المستودع بـ quotaBytes (سلسلة نصية عشرية، وnull لعدم وجود حصة) وعتبات التحذير الخاصة بها. يجب أن تكون expectedRevision هي المراجعة الحالية، وإلا كانت النتيجة 409 revision_mismatch. ويتطلب التفعيل أيضًا artifact.delete ويربط الجدولة بمفتاح الخدمة المُدار الذي استدعى العملية: فإذا أُبطل هذا المفتاح أو انتهت صلاحيته أو فقد هذه الأذونات توقف الحذف المجدول إلى أن تُحفظ السياسة بمفتاح آخر. والملفات العادية تُحتسب من الحصة لكنها لا تُحذف بها أبدًا.

المعلمات

الاسمالموضعالنوعمطلوبالقواعد
repositoryالمسارstringنعميطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$

نص الطلب (application/json)

الحقلالنوعمطلوبالقواعد
expectedRevisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.groupingstringنعمإحدى القيم: package-channel, package, repository
policy.keepLastintegerنعم1–100000
policy.channelsمصفوفة من objectنعمعدد العناصر: 32 كحد أقصى
policy.channels[].labelstringنعمعدد الأحرف: 1–64
policy.channels[].keepLastintegerنعم1–100000
policy.protectedLabelsمصفوفة من stringنعمعدد العناصر: 32 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: عدد الأحرف: 1–64
policy.minAgeHoursintegerنعم0–87600
policy.intervalMinutesintegerنعم1–10080
policy.quotaBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية; يمكن أن يكون null
policy.warningPercentintegerنعم1–98
policy.criticalPercentintegerنعم2–99

الاستجابة 200

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.groupingstringنعمإحدى القيم: package-channel, package, repository
policy.keepLastintegerنعم1–100000
policy.channelsمصفوفة من objectنعمعدد العناصر: 32 كحد أقصى
policy.channels[].labelstringنعمعدد الأحرف: 1–64
policy.channels[].keepLastintegerنعم1–100000
policy.protectedLabelsمصفوفة من stringنعمعدد العناصر: 32 كحد أقصى; بلا عناصر مكرّرة; كل عنصر: عدد الأحرف: 1–64
policy.minAgeHoursintegerنعم0–87600
policy.intervalMinutesintegerنعم1–10080
policy.quotaBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية; يمكن أن يكون null
policy.warningPercentintegerنعم1–98
policy.criticalPercentintegerنعم2–99
nextRunAtstring (date-time)نعميمكن أن يكون null
lastRunAtstring (date-time)نعميمكن أن يكون null
lastDeletedintegerنعم0–100
lastErrorstringنعمعدد الأحرف: 64 كحد أقصى; يمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

مثال

bash
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

الحقلالنوعمطلوبالقواعد
publishedBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
pendingBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
retiredBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
reservedBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
quotaBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية; يمكن أن يكون null
statestringنعمإحدى القيم: unlimited, normal, warning, critical, exceeded

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
itemsمصفوفة من objectنعمعدد العناصر: 100 كحد أقصى
items[].idstring (uuid)نعم—
items[].namestringنعمعدد الأحرف: 240 كحد أقصى
items[].sizestringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
items[].publishedAtstring (date-time)نعم—
items[].annotationRevisionintegerنعم0–2147483647
items[].blockersمصفوفة من stringنعمعدد العناصر: 0 كحد أقصى
hasMorebooleanنعم—

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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)

الحقلالنوعمطلوبالقواعد
expectedRevisionintegerنعم0–2147483647

الاستجابة 200

الحقلالنوعمطلوبالقواعد
itemsمصفوفة من objectنعمعدد العناصر: 100 كحد أقصى
items[].idstring (uuid)نعم—
items[].outcomestringنعمإحدى القيم: 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

مثال

bash
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 · إعادة المحاولة: آمن للتكرار (قراءة)

يعيد حتى 100 حدث تشخيصي لسياسات التخزين والحصص والاحتفاظ والتنظيف بعد التسلسل after (الافتراضي 0)، بدءًا من الأقدم، لكل منها المستوى والرمز وبعض التفاصيل؛ ويرشّحها 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[].sequencestringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
items[].occurredAtstring (date-time)نعم—
items[].levelstringنعمإحدى القيم: info, warning, error
items[].codestringنعمعدد الأحرف: 96 كحد أقصى
items[].detailsقاموس من string | integerنعمعدد الإدخالات: 16 كحد أقصى
nextstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية; يمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.graceHoursintegerنعم0–8760
policy.batchSizeintegerنعم1–100
policy.intervalSecondsintegerنعم5–86400
policy.delayMillisecondsintegerنعم0–1000
lastRunAtstring (date-time)نعميمكن أن يكون null
nextRunAtstring (date-time)نعميمكن أن يكون null
lastCollectedintegerنعم0–100
lastDeferredintegerنعم0–100
lastFailedintegerنعم0–100
lastReclaimedBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
lastErrorstringنعميمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 409, 422, 503, 507

مثال

bash
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)

الحقلالنوعمطلوبالقواعد
expectedRevisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.graceHoursintegerنعم0–8760
policy.batchSizeintegerنعم1–100
policy.intervalSecondsintegerنعم5–86400
policy.delayMillisecondsintegerنعم0–1000

الاستجابة 200

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.graceHoursintegerنعم0–8760
policy.batchSizeintegerنعم1–100
policy.intervalSecondsintegerنعم5–86400
policy.delayMillisecondsintegerنعم0–1000
lastRunAtstring (date-time)نعميمكن أن يكون null
nextRunAtstring (date-time)نعميمكن أن يكون null
lastCollectedintegerنعم0–100
lastDeferredintegerنعم0–100
lastFailedintegerنعم0–100
lastReclaimedBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
lastErrorstringنعميمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

مثال

bash
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 · إعادة المحاولة: لا تكرّره تلقائيًا

يجدول بدء الدفعة التالية من سياسة التنظيف المفعّلة فورًا؛ والردّ هو حالة التنظيف، ولا تتحرر البايتات إلا بعد تشغيل الدفعة (انظر lastRunAt في getCleanup). يجب أن تكون expectedRevision هي المراجعة الحالية؛ والتنظيف المعطّل يعطي 409 state_conflict. الكائنات التي تجري قراءتها أو كتابتها تُؤجَّل إلى دفعة لاحقة.

المعلمات

الاسمالموضعالنوعمطلوبالقواعد
repositoryالمسارstringنعميطابق النمط ^[a-z0-9][a-z0-9_-]{0,63}$

نص الطلب (application/json)

الحقلالنوعمطلوبالقواعد
expectedRevisionintegerنعم0–2147483647

الاستجابة 200

الحقلالنوعمطلوبالقواعد
revisionintegerنعم0–2147483647
policyobjectنعم—
policy.enabledbooleanنعم—
policy.graceHoursintegerنعم0–8760
policy.batchSizeintegerنعم1–100
policy.intervalSecondsintegerنعم5–86400
policy.delayMillisecondsintegerنعم0–1000
lastRunAtstring (date-time)نعميمكن أن يكون null
nextRunAtstring (date-time)نعميمكن أن يكون null
lastCollectedintegerنعم0–100
lastDeferredintegerنعم0–100
lastFailedintegerنعم0–100
lastReclaimedBytesstringنعمعدد صحيح بأرقام عشرية، يُرسَل كسلسلة نصية
lastErrorstringنعميمكن أن يكون null

الاستجابات: 200, 400, 401, 403, 404, 405, 409, 413, 415, 422, 503, 507

مثال

bash
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}'

Arkvory · ProAnimaStudio