İçeriğe geç
CivoCloudManager

macOS'ta Civo Object Storage'ı S3 üzerinden gezin.

Bölgesel uç nokta, s3cmd, rclone ve AWS CLI için çalışan yapılandırma, bir de yerel bir istemcinin farkı.

Civo Object Storage S3 konuşur, yani iki şey doğru olduğunda neredeyse her S3 istemcisi onunla anlaşır: store'un bulunduğu bölgenin uç noktası ve aynı bölgede oluşturulmuş bir kimlik bilgisi. Civo'nun kendi belgeleri s3cmd'yi adım adım anlatır, gerisini size bırakır. Bu sayfa s3cmd, rclone ve AWS CLI için ham yapılandırmayı veriyor, sonra da CivoCloudManager'ın yolunu gösteriyor: uç noktayı ve erişim anahtarlarını doğrudan Civo API'sinden okumak, yani elle ayarlanacak hiçbir şey bırakmamak.

Civo için bir S3 istemcisi yapılandırmak

  1. 01

    Bölgenizin uç noktasını bulun.

    Civo object store uç noktalarını https://objectstore.<region>.civo.com biçiminde kurar, bölge kodu küçük harfle yazılır; yani Londra'daki bir store'a https://objectstore.lon1.civo.com, Frankfurt'takine https://objectstore.fra1.civo.com adresinden ulaşılır. Her store kendi uç noktasını Civo panelinde de gösterir ve REST API'nin objectstore_endpoint alanında döndürür. Civo'nun bölge özellikleri tablosuna göre object store LON1, FRA1, NYC1 ve MUM1'de var, PHX1'de yok.

  2. 02

    Kimlik bilgisini aynı bölgede oluşturun.

    Her Civo object store özeldir ve bir access key ID ile secret key ister. Kimlik bilgisini, bölge seçici store'un bölgesindeyken Civo panelinde Object Stores altında ya da Civo CLI ile oluşturun. civo objectstore credential export -a <access_key> komutu çifti AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_DEFAULT_REGION ve AWS_HOST olarak, kabuğa yapıştırılmaya hazır yazdırır.

  3. 03

    s3cmd: host_base ve host_bucket.

    ~/.s3cfg dosyasında [default] altına host_base = objectstore.fra1.civo.com, host_bucket = objectstore.fra1.civo.com, bucket_location = fra1, use_https = True, signature_v2 = False ve bir de access_key ile secret_key yazın. host_bucket değerine host_base ile aynı ana makine adını vermek s3cmd'yi yol tabanlı adreslemede tutar, Civo'nun yanıt verdiği biçim de budur. Sonrası: s3cmd ls store'larınızı listeler, s3cmd ls s3://STORENAME tek bir store'u listeler, s3cmd put file.tar s3://STORENAME/backups/ yükler, s3cmd get -r s3://STORENAME/backups/ bütün bir ön eki indirir. Yapılandırma dosyası olmadan aynı iki değer komut satırında --host= ve --host-bucket= olarak verilir.

  4. 04

    rclone: s3 türünde, provider Other olan bir remote.

    rclone config çalıştırıp s3'ü seçin veya bloğu doğrudan ~/.config/rclone/rclone.conf içine yazın: [civo] altında type = s3, provider = Other, env_auth = false, kimlik bilgisinden gelen access_key_id ve secret_access_key, region = fra1, endpoint = https://objectstore.fra1.civo.com ve acl = private. Sonrasında rclone lsd civo: store'ları listeler, rclone ls civo:STORENAME nesneleri listeler, rclone copy ./dir civo:STORENAME/dir -P bir klasörü ilerleme göstergesiyle yukarı eşitler, rclone ncdu civo:STORENAME ise metin kipinde bir tarayıcı açar. Aynı ayarlar tek seferlik bayrak olarak da çalışır: --s3-provider Other --s3-endpoint https://objectstore.fra1.civo.com --s3-region fra1.

  5. 05

    AWS CLI: her çağrıda --endpoint-url.

    AWS CLI için Civo'ya özel bir eklenti gerekmez, yalnızca her komutta uç nokta: aws s3 ls --endpoint-url https://objectstore.fra1.civo.com, ardından aws s3 ls s3://STORENAME --endpoint-url ... ve aws s3 cp file.tar s3://STORENAME/ --endpoint-url ... . Kimlik bilgileri AWS_ACCESS_KEY_ID ve AWS_SECRET_ACCESS_KEY değişkenlerinden ya da adlandırılmış bir profilden gelir; AWS_DEFAULT_REGION değerini Civo bölge koduna ayarlayın ki Signature V4 kapsamı tutsun. Yeni sürümler için bir dipnot: AWS CLI 2.23 ve sonrası yüklemelere varsayılan olarak CRC64NVME sağlama toplamı ekliyor ve her S3 uyumlu uç nokta bunu kabul etmiyor. Bir put sağlama toplamı hatasıyla düşerse AWS_REQUEST_CHECKSUM_CALCULATION=when_required ve AWS_RESPONSE_CHECKSUM_VALIDATION=when_required verin.

Bir saate mal olan tuzak: anahtarlar tek bir bölgeye bağlı

Civo bunu belgelerinde iki cümleyle açıkça yazıyor, ama iki cümle göz kaçırmaya çok müsait: object store'lar bölgeye özeldir ve object store'ları yönetmek ve onlara erişmek için kullanılan kimlik bilgileri, oluşturuldukları bölgeye bağlıdır. Panel FRA1'deyken üretilmiş bir anahtar, aynı hesap ve aynı fatura olmasına rağmen LON1 uç noktasında doğrulanmaz. Belirti, secret key'de yazım hatası varmış gibi görünen bir kimlik doğrulama veya imza hatasıdır; doğal tepki de anahtarı yeniden üretmek olur, bu da yine yanlış bölgede bir anahtar daha demektir. Önce bölge seçiciye bakın, kimlik bilgisini store'un yanında oluşturun, yapılandırmadan ancak ondan sonra şüphelenin.

Komut satırının kapsamadığı şey

Betikler, yedekler ve CI için s3cmd, rclone ve AWS CLI doğru cevap ve buradaki hiçbir şey onların yerini almıyor. Vermedikleri şey store'a bakabilmek: klasör ağacı, bir bakışta boyutlar, sürükleyip çıkarabileceğiniz bir seçim. Cyberduck veya Transmit gibi genel Mac S3 istemcileri bu boşluğu dolduruyor, ama Civo'dan haberleri yok; uç noktayı siz giriyorsunuz, her store için iki anahtarı siz yapıştırıyorsunuz ve her kimlik bilgisi değişiminde bunları elle güncel tutuyorsunuz.

Uygulamanın yolu: girilecek uç nokta yok

CivoCloudManager bir kez Civo API anahtarınızla kimlik doğrular ve object store listesini Civo REST API v2'den okur; o liste zaten her store'un uç noktasını ve bağlı kimlik bilgisini taşır. S3 istemcisini bundan kurar, yani ortada uç nokta alanı, anahtar yapıştırma ya da yapılandırma dosyası yok. S3 katmanı düz Swift: AWS Signature V4, CryptoKit HMAC-SHA256 ile hesaplanıyor, AWS SDK yok, Electron yok. Devam belirteçleriyle ListObjects v2, ortak ön ekler üzerinde breadcrumb gezinme, çoklu seçim ve akan bir ilerleme satırıyla özyinelemeli klasör indirme yapar. İşin şekli konusunda dürüst olmak gerekirse: tarayıcı okur ve indirir. Yükleme ve silme hâlâ s3cmd ya da rclone tarafında. Uygulama macOS 15 veya üstünü ister.

Erişim anahtarları dotfile yerine Touch ID'nin arkasında

Komut satırını bırakmayacak olsanız bile kurulumu hak eden kısım burası. Çalışan bir s3cmd kurulumu demek, secret key'in ~/.s3cfg içinde düz metin durması demek; aynısı rclone.conf ve ~/.aws/credentials için de geçerli. Sizin kullanıcınızla çalışan her süreç üçünü de okuyabilir, ev dizininizi tarayan her şey de öyle. CivoCloudManager Civo API anahtarını macOS Keychain'de tutar ve arayüzde bir object store secret access key değerini göstermek önce Touch ID ya da sistem parolası ister. Sınırı ortada ve söylemekte fayda var: anahtarı bir terminale kopyaladığınız anda o yine düz metin bir dosyadır.

Kullanmadığınız store'lar için Pause ve Resume

Boşta duran bir store yine de ayrılan boyutu üzerinden fatura üretir. Pause her nesneyi civo-cloud-manager adlı merkezi bir object store'a kopyalar, veri sığmıyorsa önce o kasayı büyütür, kopyalanan anahtarları ve boyutları kaynakla karşılaştırır ve ancak eşleştiklerinde orijinal store'u siler. Kalem Civo faturasından düşer. Resume store'u aynı ad ve aynı kimlik bilgisiyle yeniden oluşturur, nesneleri geri kopyalar, anahtarları ve boyutları tekrar doğrular, sonra kasayı temizler. Aynı anda en fazla dört nesne taşınır. Dürüst sınırlar: doğrulama içeriği özetlemek yerine adları ve boyutları karşılaştırır, aktarımlar nesneleri bütün olarak bellekte tamponlar ve uzak manifest kaynak silindikten sonra yazılır, yerel manifest de yedek olarak durur.

Hangi iş için hangi istemci

Dördü de aynı uç noktada aynı S3 API'siyle konuşuyor. Fark, yapılandırmanın nerede durduğu, secret key'in nerede bittiği ve neyi görebildiğiniz.

İş s3cmdrcloneAWS CLICivoCloudManager
Uç nokta yapılandırması ~/.s3cfg içinde host_base ve host_bucketremote içinde endpointher çağrıda --endpoint-urlCivo API'sinden okunur
Secret key nerede bitiyor ~/.s3cfg, düz metinrclone.conf, düz metin~/.aws/credentials, düz metinmacOS Keychain, göstermek için Touch ID
Store'u görsel olarak gezme hayırrclone ncdu, metin kipihayırevet, breadcrumb'lı dosya tarayıcısı
Nesne yükleme ve silme evetevetevettarayıcıda yok
Özyinelemeli klasör indirme s3cmd get -rrclone copyaws s3 cp --recursiveevet, ilerleme göstergeli
Boştaki store'u duraklatıp ödemeyi kesme hayırhayırhayırevet, silmeden önce doğrulayan kasa
CI içinde çalışır evetevetevethayır, bir Mac uygulaması

S3 üzerinden Civo Object Storage, cevaplarla

Civo object storage uç nokta adresi nedir?
Civo object store uç noktaları https://objectstore.<region>.civo.com kalıbını izler, bölge kodu küçük harfle yazılır; örneğin Londra'da https://objectstore.lon1.civo.com, Frankfurt'ta https://objectstore.fra1.civo.com. Uç nokta, store'un oluşturulduğu bölgeye göre değişir. Her store kendi uç noktasını Civo panelinde de gösterir ve Civo REST API'sinin objectstore_endpoint alanında döndürür.
Civo Object Storage ile s3cmd veya rclone kullanabilir miyim?
Evet, ikisi de çalışır; AWS CLI ve başka her S3 uyumlu istemci de öyle. s3cmd için ~/.s3cfg içinde host_base ve host_bucket değerlerini objectstore.fra1.civo.com gibi bölgesel ana makine adına ayarlayın, access_key ve secret_key alanlarını doldurun. rclone için type = s3, provider = Other, endpoint = https://objectstore.fra1.civo.com ve aynı anahtar çiftiyle bir remote oluşturun. AWS CLI için her komuta --endpoint-url https://objectstore.fra1.civo.com ekleyin.
Civo object storage erişim anahtarım neden çalışmıyor?
Her zamanki sebep bölge. Civo, object store'ların bölgeye özel olduğunu ve kimlik bilgilerinin oluşturuldukları bölgeye bağlı olduğunu söylüyor; yani FRA1'de oluşturulan bir anahtar, aynı hesaba ait olsa bile LON1 uç noktasında doğrulanmaz. Kimlik bilgisini panel store'un bölgesindeyken oluşturun. İkinci sık sebep, uç noktayı hiç almamış bir istemci ya da varsayılanında bırakılmış bir s3cmd host_bucket değeri; o zaman istek Civo'ya değil Amazon'a gider.
Mac'te Civo object storage için bir arayüz var mı?
CivoCloudManager yerel bir macOS uygulaması, macOS 15 ve üstü, Mac App Store'da ve Civo'yu biliyor: her store'un uç noktasını ve erişim anahtarlarını Civo API'sinden okuduğu için ayarlanacak bir şey yok. Breadcrumb'larla gezer; tek dosyayı, çoklu seçimi veya bütün bir klasörü özyinelemeli indirir, yükleme ve silme ise komut satırında kalır. Cyberduck ya da Transmit gibi genel S3 istemcileri de uç noktayı yazıp her store için iki anahtarı yapıştırdığınızda Civo'ya bağlanır.
Pause, Civo object store'umdaki verilere ne yapıyor?
Pause her nesneyi kendi Civo hesabınızın içindeki civo-cloud-manager adlı merkezi bir object store'a kopyalar, kopyalanan anahtarları ve boyutları kaynakla karşılaştırır ve ancak ondan sonra orijinal store'u siler, böylece maliyet durur. Resume store'u aynı ad ve aynı kimlik bilgisiyle yeniden oluşturur, nesneleri geri kopyalar ve kasayı temizlemeden önce anahtarları ve boyutları yeniden doğrular. Veri hiçbir zaman Civo hesabınızdan çıkmaz ve doğrulama içerik özeti değil, ad ve boyut karşılaştırmasıdır.

Uç nokta yapılandırmasını atlayın.

CivoCloudManager uç noktayı ve erişim anahtarlarını kendi Civo hesabınızdan okur, yani yapılandırma dosyası beklemek yerine store doğrudan açılır. Menü çubuğu katmanı ücretsiz, tam panel Mac App Store'da tek seferlik satın alım.

Mac App Store'dan indirin

macOS 15 (Sequoia) veya üstünü gerektirir.

Ana sayfaya dön