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

क्लाइंट और प्रोटोकॉल ​

Arkvory का स्टोरेज और एक्सेस मॉडल एक ही है, लेकिन उस तक पहुँचने के कई तरीके हैं। हर तरीका एक क्लाइंट या ऐसा प्रोटोकॉल है जिसे कोई टूल पहले से जानता है। सभी तरीके डेटा को Arkvory आर्टिफ़ैक्ट के रूप में सहेजते हैं। इसलिए आप कोई भी तरीका इस्तेमाल करें, वही अनुमतियाँ, कोटा, SHA-256 जाँच, प्रतिधारण नियम, बैकअप और मिरर लागू होते हैं।

यह पेज Arkvory से बात करने के सभी तरीके सूचीबद्ध करता है: हर तरीका किस काम का है और वह कौन-से क्रेडेंशियल स्वीकार करता है। किसी काम के लिए सही टूल चुनने में इसका इस्तेमाल करें।

अवलोकन ​

तरीकापताकिसके लिए इस्तेमाल करेंक्रेडेंशियल
वेब कंसोलhttps://arkvory.example/console/ब्राउज़र में रिपॉज़िटरी देखें, अपलोड और डाउनलोड करें, उपयोगकर्ता, कुंजियाँ और बैकअप प्रबंधित करेंउपयोगकर्ता नाम और पासवर्ड से साइन इन, या सेवा कुंजी
arkvoryctl कमांड लाइन/api/v1CI स्क्रिप्ट, जारी रखे जा सकने वाले अपलोड और डाउनलोड, पथ वाली फ़ाइलें, प्रमोशन, बैकअपफ़ाइल या एनवायरनमेंट वेरिएबल से कुंजी (Bearer के रूप में भेजी जाती है)
TypeScript SDK/api/v1TypeScript या JavaScript में आपके अपने टूल, Node.js या ब्राउज़र मेंकॉलबैक से कुंजी (Bearer के रूप में भेजी जाती है)
REST API/api/v1/...किसी भी भाषा में इंटीग्रेशनकेवल Authorization: Bearer <key>
कंटेनर रजिस्ट्री (OCI)/v2/Docker, Podman, Buildx, containerd, Helm चार्ट, ORAS आर्टिफ़ैक्टकुंजी को पासवर्ड बनाकर Basic (docker login), या Bearer
Git LFS/lfs/<repository>git रिपॉज़िटरी की बड़ी फ़ाइलें, Unity और Unreal के लिए फ़ाइल लॉकिंगकुंजी को पासवर्ड बनाकर Basic (git credential helper), या Bearer
npm रजिस्ट्री/npm/<repository>/Unity Package Manager की स्कोप्ड रजिस्ट्री, npm publish और npm installBearer (.npmrc में _authToken, .upmconfig.toml में token), या Basic _auth
पथ से रॉ फ़ाइलें/api/v1/repositories/<repository>/raw/<path>curl -T या PowerShell से एक ही अनुरोधकेवल Authorization: Bearer <key>
वेबहुकआपके रिसीवर का URLरिपॉज़िटरी बदलने पर डिप्लॉयमेंट या जॉब शुरू करनाहर अनुरोध का HMAC हस्ताक्षर

/v2, /lfs और /npm के रूट अपने प्रोटोकॉल के विनिर्देशों का पालन करते हैं। वे /api/v1 के OpenAPI दस्तावेज़ का हिस्सा नहीं हैं, और त्रुटियाँ उसी फ़ॉर्मेट में बताते हैं जिसकी उनके क्लाइंट अपेक्षा करते हैं।

क्रेडेंशियल ​

सार्वजनिक हेल्थ चेक को छोड़कर हर अनुरोध को क्रेडेंशियल चाहिए। Arkvory ये प्रकार स्वीकार करता है:

प्रकारकैसा दिखता हैकहाँ से आता हैसामान्य उपयोग
व्यक्तिगत एक्सेस टोकनpat_...उपयोगकर्ता इसे कंसोल में बनाता है। स्कोप read या read-write। समाप्त हो जाता है (डिफ़ॉल्ट रूप से 90 दिन में, अधिकतम 365)।डेवलपर: वर्कस्टेशन पर Unity, git, Docker
सेवा कुंजीarkvory_...व्यवस्थापक सेवा खाते के लिए जारी करता है, हर रिपॉज़िटरी में सटीक कार्रवाइयों के साथCI/CD, डिप्लॉय एजेंट, बिल्ड सर्वर
फ़ाइल कुंजीकोई भी सीक्रेटसर्वर की कुंजी फ़ाइल (ARKVORY_KEYS_FILE), जिसमें हर रिपॉज़िटरी के लिए read या write होता है; स्वामी की कुंजी प्रशासन भी करती हैइंस्टॉलेशन का स्वामी, पुराने इंटीग्रेशन
सत्रdps_...कंसोल में साइन इन; 12 घंटे के लिए मान्यकंसोल पर इंटरैक्टिव काम
डाउनलोड लिंक?token= वाला URLएक आर्टिफ़ैक्ट के लिए बनाया जाता है; 60 सेकंड से 24 घंटेबिना कुंजी वाले व्यक्ति को एक फ़ाइल देना

प्रोटोकॉल केवल इसमें अलग हैं कि वे कुंजी कैसे भेजते हैं:

  • /api/v1, CLI, SDK और रॉ फ़ाइलें Authorization: Bearer <key> इस्तेमाल करते हैं।
  • /v2, /lfs और /npm HTTP Basic भी स्वीकार करते हैं। उपयोगकर्ता नाम जाँचा नहीं जाता। पासवर्ड Arkvory की कुंजी होती है। docker login, git क्रेडेंशियल हेल्पर और npm _auth इसी तरह क्रेडेंशियल भेजते हैं।
  • केवल-पढ़ने वाला व्यक्तिगत टोकन कभी डेटा नहीं बदलता। फिर भी वह Git LFS ऑब्जेक्ट डाउनलोड कर सकता है, क्योंकि Git LFS का batch अनुरोध डाउनलोड के लिए भी POST होता है।

टोकन और कुंजियाँ बनाने का तरीका: खाते और कुंजियाँ। हेडर का विवरण: प्रमाणीकरण।

मुझे कौन-सा तरीका इस्तेमाल करना चाहिए? ​

कामअनुशंसित तरीका
CI से बिल्ड आर्टिफ़ैक्ट अपलोड करना और नेटवर्क विफलता के बाद उसे जारी रखनाarkvoryctl upload या arkvoryctl put
CI से UPack पैकेज प्रकाशित करनाarkvoryctl packages publish
सर्वर पर "सबसे नया 1.4 रिलीज़" डिप्लॉय करनाarkvoryctl packages download --range ^1.4 --stage release
कुछ इंस्टॉल किए बिना शेल स्क्रिप्ट से पथ पर छोटी या मध्यम फ़ाइल रखनाcurl -T या PowerShell के साथ रॉ फ़ाइलें
कंटेनर इमेज या Helm चार्ट सहेजनाकंटेनर इमेज
गेम के टेक्सचर, मॉडल और लेवल git होस्ट के बाहर रखनाGit LFS
प्रोजेक्टों के बीच Unity पैकेज साझा करनाUnity और npm पैकेज
अपना टूल या वेब इंटरफ़ेस बनानाTypeScript SDK
Python, Go, C# या किसी और भाषा से इंटीग्रेट करनाREST API
सब कुछ देखना-परखना, उपयोगकर्ता, कुंजियाँ और बैकअप प्रबंधित करनावेब कंसोल

कुछ व्यावहारिक सुझाव:

  • बड़ी फ़ाइलें (कई गीगाबाइट): arkvoryctl या SDK इस्तेमाल करें। वे भागों में अपलोड करते हैं और रुकावट के बाद जारी रहते हैं। एक ही PUT अनुरोध (रॉ फ़ाइलें, Git LFS ऑब्जेक्ट, npm publish, Docker लेयर) विफलता के बाद शून्य बाइट से फिर शुरू होता है।
  • टूल पहले से किसी प्रोटोकॉल को जानता है: वही प्रोटोकॉल इस्तेमाल करें। Docker, git और Unity को अतिरिक्त सॉफ़्टवेयर नहीं चाहिए।
  • मशीन केवल पढ़ती है: उसे केवल-पढ़ने वाला टोकन या केवल पढ़ने की कार्रवाइयों वाली सेवा कुंजी दें।

साझा नियम ​

HTTPS। हर क्लाइंट के लिए HTTPS इस्तेमाल करें। CLI और SDK लूपबैक (localhost, 127.0.0.1, [::1]) के अलावा सादा HTTP स्वीकार नहीं करते। Docker को विश्वसनीय सर्टिफ़िकेट चाहिए। Git हर अनुरोध के साथ कुंजी भेजता है। HTTPS देखें।

एक ही स्टोरेज। इमेज लेयर, Git LFS ऑब्जेक्ट, npm टारबॉल और रॉ फ़ाइल सब आर्टिफ़ैक्ट हैं। वे रिपॉज़िटरी कोटा और इंस्टॉलेशन की क्षमता में गिने जाते हैं। सहेजते समय उनका SHA-256 से सत्यापन होता है। वे बैकअप में शामिल होते हैं।

रीड गेटवे और मिरर। रीड गेटवे केवल GET और HEAD स्वीकार करता है। मिरर किसी दूसरे इंस्टॉलेशन पर रिपॉज़िटरी की रीड-ओनली प्रति है।

तरीकारीड गेटवे परमिरर पर
/api/v1, CLI, SDKकेवल पढ़नापढ़ना; बदलाव अस्वीकार किए जाते हैं (409 mirror_read_only)
कंटेनर रजिस्ट्रीपुलपुल; पुश अस्वीकार किया जाता है
Git LFSसमर्थित नहीं (batch अनुरोध POST है)क्लोन और फ़ेच; पुश और लॉक अस्वीकार किए जाते हैं
npm रजिस्ट्रीइंस्टॉल और खोजइंस्टॉल और खोज; publish अस्वीकार किया जाता है
रॉ फ़ाइलेंGET और HEADGET और HEAD

रीड गेटवे और मिरर देखें।

Arkvory · ProAnimaStudio