सामग्री पर जाएं
CivoCloudManager

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 क्लाइंट सेट करना

  1. 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 में नहीं।

  2. 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 के रूप में छाप देता है, सीधे शेल में पेस्ट करने लायक।

  3. 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_keyhost_bucket को host_base वाला ही होस्टनेम देने से s3cmd path style ऐड्रेसिंग पर बना रहता है, और Civo उसी पर जवाब देता है। इसके बाद s3cmd ls आपके स्टोर लिस्ट करता है, s3cmd ls s3://STORENAME एक स्टोर लिस्ट करता है, s3cmd put file.tar s3://STORENAME/backups/ अपलोड करता है, और s3cmd get -r s3://STORENAME/backups/ पूरा prefix नीचे खींच लेता है। config फ़ाइल न हो तो वही दो वैल्यू कमांड लाइन पर --host= और --host-bucket= के रूप में जाती हैं।

  4. 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-provider Other --s3-endpoint https://objectstore.fra1.civo.com --s3-region fra1।

  5. 05

    AWS CLI: हर कॉल पर --endpoint-url।

    AWS CLI को Civo के लिए किसी खास प्लगइन की ज़रूरत नहीं, बस हर कमांड पर endpoint चाहिए: aws s3 ls --endpoint-url https://objectstore.fra1.civo.com, फिर aws s3 ls s3://STORENAME --endpoint-url ... और aws s3 cp file.tar s3://STORENAME/ --endpoint-url ... । credential AWS_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 कहाँ जाकर बैठता है, और आपको दिखता क्या है।

काम s3cmdrcloneAWS CLICivoCloudManager
endpoint की कॉन्फ़िगरेशन ~/.s3cfg में host_base और host_bucketremote में endpointहर कॉल पर --endpoint-urlCivo API से पढ़ा जाता है
secret key कहाँ जाकर बैठती है ~/.s3cfg, प्लेनटेक्स्टrclone.conf, प्लेनटेक्स्ट~/.aws/credentials, प्लेनटेक्स्टmacOS Keychain, दिखाने पर Touch ID
स्टोर को देखकर ब्राउज़ करना नहींrclone ncdu, टेक्स्ट मोडनहींहाँ, breadcrumb वाला फ़ाइल browser
ऑब्जेक्ट अपलोड और डिलीट हाँहाँहाँbrowser में नहीं
फ़ोल्डर का रिकर्सिव डाउनलोड s3cmd get -rrclone copyaws 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-url https://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 के बजाय नाम और साइज़ से होती है।

डीप डाइव

हर Civo प्रोडक्ट के लिए एक फ़ोकस्ड पेज।

CivoCloudManager जिन Civo सरफ़ेस को छूता है, उन सबका अपना पेज है, बारीकियों, ट्रेड-ऑफ़ और आर्किटेक्चर के ब्योरे के साथ। जो आपके आज के काम के सबसे करीब है, वही चुनिए।

endpoint की कॉन्फ़िगरेशन छोड़ दीजिए।

CivoCloudManager, endpoint और access key आपके अपने Civo अकाउंट से पढ़ता है, इसलिए config फ़ाइल बनाने के बजाय स्टोर सीधे खुल जाता है। menu bar वाला हिस्सा मुफ़्त, पूरे dashboard के लिए Mac App Store पर एक बार की खरीद।

Mac App Store से डाउनलोड करें

macOS 15 (Sequoia) या उससे नया चाहिए।

होमपेज पर वापस