macOS पर Civo Object Storage को S3 से ब्राउज़ कीजिए।
रीजन का endpoint, s3cmd, rclone और AWS CLI की चलती हुई कॉन्फ़िगरेशन, और एक नेटिव क्लाइंट इससे अलग क्या करता है।
Civo Object Storage S3 बोलता है, इसलिए लगभग कोई भी S3 क्लाइंट उससे बात कर सकता है, बस दो चीज़ें सही होनी चाहिए: जिस रीजन में स्टोर है उसका endpoint, और उसी रीजन में बनी credential। Civo के अपने दस्तावेज़ s3cmd तक ले जाते हैं और बाकी टूलिंग आप पर छोड़ देते हैं। यह पेज s3cmd, rclone और AWS CLI की सीधी कॉन्फ़िगरेशन देता है, फिर दिखाता है कि CivoCloudManager कौन सा रास्ता लेता है, जो यह है कि endpoint और access key सीधे Civo API से पढ़ ली जाती हैं और हाथ से सेट करने को कुछ बचता ही नहीं।
Civo के लिए S3 क्लाइंट सेट करना
-
01
अपने रीजन का endpoint निकालिए।
Civo, object store के endpoint
https://objectstore.<region>.civo.comकी शक्ल में बनाता है, रीजन कोड छोटे अक्षरों में, इसलिए लंदन वाला स्टोरhttps://objectstore.lon1.civo.comपर मिलता है और फ़्रैंकफ़र्ट वालाhttps://objectstore.fra1.civo.comपर। हर स्टोर अपना endpoint Civo dashboard में भी दिखाता है और REST API केobjectstore_endpointफ़ील्ड में लौटाता है। Civo के रीजन फ़ीचर ओवरव्यू के मुताबिक object store LON1, FRA1, NYC1 और MUM1 में उपलब्ध हैं, PHX1 में नहीं। -
02
credential उसी रीजन में बनाइए।
हर Civo object store प्राइवेट होता है और उसे access key ID तथा secret key चाहिए। credential Civo dashboard में Object Stores के नीचे बनाइए, जब रीजन सिलेक्टर उसी स्टोर के रीजन पर हो, या Civo CLI से बनाइए। कमांड civo objectstore credential export
-a<access_key>इस जोड़ी कोAWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY,AWS_DEFAULT_REGIONऔरAWS_HOSTके रूप में छाप देता है, सीधे शेल में पेस्ट करने लायक। -
03
s3cmd: host_base और host_bucket।
~/.s3cfgमें [default] के नीचे रखिएhost_base=objectstore.fra1.civo.com,host_bucket=objectstore.fra1.civo.com,bucket_location= fra1,use_https= True,signature_v2= False, साथ मेंaccess_keyऔरsecret_key।host_bucketकोhost_baseवाला ही होस्टनेम देने से s3cmd path style ऐड्रेसिंग पर बना रहता है, और Civo उसी पर जवाब देता है। इसके बाद s3cmd ls आपके स्टोर लिस्ट करता है, s3cmd ls s3://STORENAME एक स्टोर लिस्ट करता है, s3cmd put file.tar s3://STORENAME/backups/ अपलोड करता है, और s3cmd get-rs3://STORENAME/backups/ पूरा prefix नीचे खींच लेता है। config फ़ाइल न हो तो वही दो वैल्यू कमांड लाइन पर--host=और--host-bucket=के रूप में जाती हैं। -
04
rclone: type s3 वाला remote, provider Other।
rclone config चलाइए और s3 चुनिए, या ब्लॉक सीधे
~/.config/rclone/rclone.confमें लिख दीजिए: [civo] के नीचे type = s3, provider = Other,env_auth= false, credential सेaccess_key_idऔरsecret_access_key, region = fra1, endpoint =https://objectstore.fra1.civo.comऔर acl = private। इसके बाद rclone lsd civo: स्टोर लिस्ट करता है, rclone ls civo:STORENAME ऑब्जेक्ट लिस्ट करता है, rclone copy ./dir civo:STORENAME/dir -P किसी फ़ोल्डर को प्रोग्रेस के साथ ऊपर भेजता है, और rclone ncdu civo:STORENAME टेक्स्ट मोड वाला browser देता है। यही सेटिंग एक बार के फ़्लैग के रूप में भी चलती हैं:--s3-providerOther--s3-endpointhttps://objectstore.fra1.civo.com--s3-regionfra1। -
05
AWS CLI: हर कॉल पर --endpoint-url।
AWS CLI को Civo के लिए किसी खास प्लगइन की ज़रूरत नहीं, बस हर कमांड पर endpoint चाहिए: aws s3 ls
--endpoint-urlhttps://objectstore.fra1.civo.com, फिर aws s3 ls s3://STORENAME--endpoint-url... और aws s3 cp file.tar s3://STORENAME/--endpoint-url... । credentialAWS_ACCESS_KEY_IDऔरAWS_SECRET_ACCESS_KEYसे या किसी नाम वाले प्रोफ़ाइल से आते हैं, औरAWS_DEFAULT_REGIONको Civo का रीजन कोड दीजिए ताकि Signature V4 का दायरा मेल खाए। नए वर्शन के लिए एक बात: AWS CLI 2.23 और उसके बाद अपलोड पर डिफ़ॉल्ट रूप से CRC64NVME चेकसम जोड़ता है, जिसे हर S3-कम्पैटिबल endpoint स्वीकार नहीं करता, इसलिए अगर put चेकसम एरर के साथ फेल हो तो AWS_REQUEST_CHECKSUM_CALCULATION=when_required और AWS_RESPONSE_CHECKSUM_VALIDATION=when_required सेट कीजिए।
एक घंटा खा जाने वाला जाल: key एक ही रीजन से बँधी होती है
Civo के दस्तावेज़ इसे दो वाक्यों में साफ़ कहते हैं, जिन पर नज़र फिसल जाना आसान है: object store रीजन के हिसाब से होते हैं, और उन्हें मैनेज तथा एक्सेस करने वाली credential उसी रीजन से बँधी होती है जहाँ वे बनी थीं। dashboard के FRA1 पर रहते बनी key, LON1 endpoint पर ऑथेंटिकेट नहीं होगी, चाहे अकाउंट वही हो और बिलिंग भी वही। लक्षण ऑथेंटिकेशन या सिग्नेचर एरर होता है जो secret में टाइपो जैसा लगता है, इसलिए पहली प्रतिक्रिया key दोबारा बनाने की होती है, और उससे उसी गलत रीजन में एक और key बन जाती है। पहले रीजन सिलेक्टर देखिए, credential स्टोर के बगल में बनाइए, और उसके बाद ही config पर शक कीजिए।
कमांड लाइन जो नहीं देती
स्क्रिप्टिंग, बैकअप और CI के लिए s3cmd, rclone और AWS CLI ही सही जवाब हैं और यहाँ लिखा कुछ भी उनकी जगह नहीं लेता। जो वे नहीं देतीं वह है स्टोर पर एक नज़र: फ़ोल्डर का पेड़, एक झलक में साइज़, और ऐसा सिलेक्शन जिसे खींचकर बाहर निकाला जा सके। Cyberduck या Transmit जैसे आम Mac S3 क्लाइंट यह कमी भरते हैं, लेकिन उन्हें Civo के बारे में कुछ नहीं पता, इसलिए हर स्टोर के लिए endpoint डालिए, दोनों key पेस्ट कीजिए और हर credential रोटेशन पर उन्हें हाथ से मिलाते रहिए।
ऐप वाला रास्ता: endpoint डालने की ज़रूरत ही नहीं
CivoCloudManager एक बार आपकी Civo API key से ऑथेंटिकेट होता है और Civo REST API v2 से object store की लिस्ट पढ़ता है, जिसमें हर स्टोर का endpoint और उससे जुड़ी credential पहले से रहती है। वह S3 क्लाइंट उसी से बनाता है, इसलिए न endpoint फ़ील्ड है, न key पेस्ट करना, न कोई config फ़ाइल। S3 लेयर सादी Swift है: CryptoKit के HMAC-SHA256 से निकाला गया AWS Signature V4, न AWS SDK, न Electron। वह continuation token के साथ ListObjects v2 करता है, common prefix पर breadcrumb नेविगेशन देता है, मल्टी-सिलेक्ट देता है, और चलती प्रोग्रेस लाइन के साथ फ़ोल्डर का रिकर्सिव डाउनलोड करता है। इसकी शक्ल के बारे में ईमानदारी से: browser पढ़ता है और डाउनलोड करता है। अपलोड और डिलीट अब भी s3cmd या rclone के हिस्से हैं। ऐप को macOS 15 या नया चाहिए।
access key dotfile के बजाय Touch ID के पीछे
यही वह हिस्सा है जिसकी वजह से CLI रखते हुए भी ऐप इंस्टॉल करना बनता है। चलता हुआ s3cmd सेटअप का मतलब है कि secret key ~/.s3cfg में प्लेनटेक्स्ट में पड़ी है, और यही rclone.conf तथा ~/.aws/credentials के लिए भी सच है। आपके यूज़र के तौर पर चलती कोई भी प्रोसेस तीनों पढ़ सकती है, और आपकी home डायरेक्टरी टटोलने वाली कोई भी चीज़ भी। CivoCloudManager, Civo API key को macOS Keychain में रखता है, और इंटरफ़ेस में object store की secret access key दिखाने से पहले Touch ID या सिस्टम पासवर्ड माँगता है। सीमा साफ़ है और कह देनी चाहिए: जिस पल आप key कॉपी करके टर्मिनल में ले जाते हैं, वह फिर से एक प्लेनटेक्स्ट फ़ाइल बन जाती है।
जिन स्टोर का इस्तेमाल नहीं, उनके लिए Pause और Resume
बेकार पड़ा स्टोर भी अपनी तय जगह का बिल बनाता रहता है। Pause हर ऑब्जेक्ट को civo-cloud-manager नाम के एक सेंट्रल object store में कॉपी करता है, डेटा न समाए तो पहले उस वॉल्ट को बड़ा करता है, कॉपी हुई key और साइज़ की सोर्स से तुलना करता है, और मेल खाने पर ही ओरिजिनल स्टोर मिटाता है। Civo के बिल से वह लाइन आइटम गायब हो जाता है। Resume उसी नाम और उसी credential के साथ स्टोर दोबारा बनाता है, ऑब्जेक्ट वापस कॉपी करता है, key और साइज़ फिर जाँचता है, और तब वॉल्ट खाली कर देता है। एक बार में चार ऑब्जेक्ट तक चलते हैं। साफ़ सीमाएँ: जाँच नाम और साइज़ से होती है, कंटेंट का hash नहीं निकाला जाता, ट्रांसफ़र पूरे ऑब्जेक्ट को मेमोरी में बफ़र करते हैं, और रिमोट manifest सोर्स मिटने के बाद लिखी जाती है, जिसका फ़ॉलबैक लोकल manifest है।
किस काम के लिए कौन सा क्लाइंट
चारों एक ही endpoint पर उसी S3 API से बात करते हैं। फ़र्क इसमें है कि कॉन्फ़िगरेशन कहाँ रहती है, secret कहाँ जाकर बैठता है, और आपको दिखता क्या है।
| काम | s3cmd | rclone | AWS CLI | CivoCloudManager |
|---|---|---|---|---|
| endpoint की कॉन्फ़िगरेशन | ~/.s3cfg में host_base और host_bucket | remote में endpoint | हर कॉल पर --endpoint-url | Civo API से पढ़ा जाता है |
| secret key कहाँ जाकर बैठती है | ~/.s3cfg, प्लेनटेक्स्ट | rclone.conf, प्लेनटेक्स्ट | ~/.aws/credentials, प्लेनटेक्स्ट | macOS Keychain, दिखाने पर Touch ID |
| स्टोर को देखकर ब्राउज़ करना | नहीं | rclone ncdu, टेक्स्ट मोड | नहीं | हाँ, breadcrumb वाला फ़ाइल browser |
| ऑब्जेक्ट अपलोड और डिलीट | हाँ | हाँ | हाँ | browser में नहीं |
| फ़ोल्डर का रिकर्सिव डाउनलोड | s3cmd get -r | rclone copy | aws s3 cp --recursive | हाँ, प्रोग्रेस के साथ |
| बेकार स्टोर pause करके पैसा बचाना | नहीं | नहीं | नहीं | हाँ, डिलीट से पहले जाँच वाला वॉल्ट |
| CI में चलता है | हाँ | हाँ | हाँ | नहीं, यह Mac ऐप है |
S3 पर Civo Object Storage, जवाब सहित
- Civo object storage का endpoint URL क्या है?
- Civo के object store endpoint
https://objectstore.<region>.civo.comकी शक्ल में होते हैं, रीजन कोड छोटे अक्षरों में, जैसे लंदन मेंhttps://objectstore.lon1.civo.comऔर फ़्रैंकफ़र्ट मेंhttps://objectstore.fra1.civo.com। endpoint इस पर निर्भर है कि स्टोर किस रीजन में बना था। हर स्टोर अपना endpoint Civo dashboard में भी दिखाता है और Civo REST API केobjectstore_endpointफ़ील्ड में लौटाता है। - क्या Civo Object Storage के साथ s3cmd या rclone चल सकते हैं?
- हाँ, दोनों चलते हैं, और AWS CLI तथा कोई भी दूसरा S3-कम्पैटिबल क्लाइंट भी। s3cmd के लिए
~/.s3cfgमेंhost_baseऔरhost_bucketको रीजन वाला होस्टनेम दीजिए, जैसेobjectstore.fra1.civo.com, औरaccess_keyतथाsecret_keyभरिए। rclone के लिए type = s3, provider = Other, endpoint =https://objectstore.fra1.civo.comऔर वही key जोड़ी वाला remote बनाइए। AWS CLI के लिए हर कमांड पर--endpoint-urlhttps://objectstore.fra1.civo.comदीजिए। - मेरी Civo object storage access key काम क्यों नहीं कर रही?
- आम वजह रीजन होती है। Civo कहता है कि object store रीजन के हिसाब से होते हैं और credential उसी रीजन से बँधी होती है जहाँ वे बनी थीं, इसलिए FRA1 में बनी key, LON1 endpoint पर ऑथेंटिकेट नहीं होगी, चाहे अकाउंट एक ही हो। credential तब बनाइए जब dashboard उसी स्टोर के रीजन पर हो। दूसरी आम वजह है ऐसा क्लाइंट जिसे endpoint मिला ही नहीं, या s3cmd का
host_bucketजो अपने डिफ़ॉल्ट पर छूट गया, जिससे रिक्वेस्ट Civo के बजाय Amazon को चली जाती है। - क्या Mac पर Civo object storage के लिए कोई GUI है?
- CivoCloudManager नेटिव macOS ऐप है, macOS 15 या नया, Mac App Store पर, और यह Civo को समझता है: हर स्टोर का endpoint और access key वह Civo API से पढ़ लेता है, इसलिए सेट करने को कुछ बचता ही नहीं। यह breadcrumb के साथ ब्राउज़ करता है और सिंगल फ़ाइल, मल्टी-सिलेक्शन या पूरा फ़ोल्डर रिकर्सिव डाउनलोड करता है, जबकि अपलोड और डिलीट CLI के पास ही रहते हैं। Cyberduck या Transmit जैसे आम S3 क्लाइंट भी Civo से जुड़ जाते हैं, बस हर स्टोर के लिए endpoint टाइप कीजिए और दोनों key पेस्ट कीजिए।
- Pause मेरे Civo object store के डेटा के साथ क्या करता है?
- Pause हर ऑब्जेक्ट को आपके ही Civo अकाउंट के अंदर civo-cloud-manager नाम के सेंट्रल object store में कॉपी करता है, कॉपी हुई key और साइज़ की सोर्स से तुलना करता है, और तभी ओरिजिनल स्टोर मिटाता है ताकि उसका पैसा लगना बंद हो। Resume उसी नाम और उसी credential के साथ स्टोर दोबारा बनाता है, ऑब्जेक्ट वापस कॉपी करता है और वॉल्ट खाली करने से पहले key और साइज़ दोबारा जाँचता है। डेटा कभी आपके Civo अकाउंट से बाहर नहीं जाता, और जाँच कंटेंट के hash के बजाय नाम और साइज़ से होती है।
गाइड
कदम दर कदम, और ईमानदार तुलना।
- 01 Civo API key जोड़िए key Civo dashboard में बनाइए, एक बार पेस्ट कीजिए, उसके बाद उसे macOS Keychain संभालता है।
- 02 अपने IP के लिए firewall खोलिए पूरा मैनुअल तरीका, बदलते IP वाला जाल जो वह पीछे छोड़ जाता है, और एक मुफ़्त menu bar रास्ता जो रूल को तय समय पर बंद कर देता है।
- 03 बनाम Lens, OpenLens और k9s तीन टूल किसी भी cluster के लिए बने हैं, एक सिर्फ़ Civo के लिए। यही फ़र्क तय करता है कि आप कौन सा खोलकर रखेंगे।
- 04 Mac पर Civo DNS डोमेन को Civo के nameserver पर लगाइए, फिर zone को browser टैब के बजाय नेटिव ऐप में संभालिए।
- 05 चेंजलॉग हर आई हुई रिलीज़, नई से पुरानी, उस ब्योरे के साथ जो स्टोर का रिलीज़ नोट बहुत छोटा होने की वजह से नहीं दे पाता।
डीप डाइव
हर Civo प्रोडक्ट के लिए एक फ़ोकस्ड पेज।
CivoCloudManager जिन Civo सरफ़ेस को छूता है, उन सबका अपना पेज है, बारीकियों, ट्रेड-ऑफ़ और आर्किटेक्चर के ब्योरे के साथ। जो आपके आज के काम के सबसे करीब है, वही चुनिए।
- 01 Mac के लिए Civo CLI विकल्प GUI कहाँ CLI से बेहतर है, कहाँ नहीं, और दोनों साथ कैसे चलते हैं।
- 02 Mac के लिए Civo Kubernetes GUI लाइव cluster dashboard, रियल-टाइम pod logs, kubectl की ज़रूरत नहीं।
- 03 Mac के लिए Civo Object Storage browser नेटिव S3-कम्पैटिबल browser। निष्क्रिय bucket सेंट्रल वॉल्ट में पॉज़ कीजिए।
- 04 Mac के menu bar से Civo firewall हर firewall के लिए एक क्लिक में open/close, ऑटो-IP डिटेक्शन, ऑटो-क्लोज़ टाइमर।
- 05 Mac के लिए Civo कॉस्ट dashboard Civo charges API से असली चार्ज। पीरियड पिकर और महीने के अंत का अनुमान।
endpoint की कॉन्फ़िगरेशन छोड़ दीजिए।
CivoCloudManager, endpoint और access key आपके अपने Civo अकाउंट से पढ़ता है, इसलिए config फ़ाइल बनाने के बजाय स्टोर सीधे खुल जाता है। menu bar वाला हिस्सा मुफ़्त, पूरे dashboard के लिए Mac App Store पर एक बार की खरीद।