S3 uyumlu Object Storage, verileri “Bucket” kaydetmeniz için size depolama alanı sağlar. Hetznerda bu kaydettiğiniz tüm veriler bir Ceph clusterinde kaydedilir. Herkese açık olarak kullanırsanız aşağıdaki şekilde herkes erişebilir.
https://<bucket-name>.<location>.your-objectstorage.com/<file-name>
ShellScriptYüklenen dosyalar değiştirilemez, bu sebeple temel amaç WORM(Write once, read many [times]) olarak kullanılmasıdır.
- Statik bir web sitesi barındırma
- Yedeklerin tutulması
- Verileri halka açık veya özel bir şekilde paylaşılması
Diğer bulut tabanlı uygulamalar ile kullanılabilir herhangi bir kısıtlama bulunmamaktadır. Hetzner’ın Object Storage ürünü S3 ile uyumludur bu sebeple S3-compatible olarak geçen tüm uygulamalar ile sorunsuz çalışabilmektedir Amazonun resmi olarak geliştirdiği bütün yazılımları kullanabilirsiniz.
Kaynak | Özellik | Açıklama |
---|---|---|
Buckets | Create | Header: x-amz-bucket-object-lock-enabledx-amz-acl (allowed value: private) |
CreateBucketConfiguration XML Body: LocationConstraint | ||
List | ||
Delete | ||
Location | ||
HeadBucket | ||
ACL | ||
Policy | ||
Encryption (SSE only) | ||
Lifecycle | ||
Objects | PutObject | |
GetObject | ||
DeleteObject | ||
HeadObject | ||
ACL | ||
ObjectLock (bucket oluşturma aşamasında seçilmelidir) | Retention Legal Hold | |
Tagging | ||
Versions |
Ayrıca minio tarafından geliştirilen mc uygulamasını da kullanmanız mümkün olduğu gibi boto3 ve s3cmd gibi araçlardan’da faydalanabilirsiniz.
Python’da kullanmak isterseniz aşağıdaki örnekten faydalanabilirsiniz.
import boto3
from botocore.exceptions import ClientError
s3 = boto3.resource('s3',
endpoint_url='https://XYZ.fsn1.your-objectstorage.com',
aws_access_key_id='<ACCESS KEY>',
aws_secret_access_key='<SECRET KEY>',
aws_session_token=None,
config=boto3.session.Config(signature_version='s3v4'),
verify=True,
)
bucket_name = 'your-unique-bucket-name'
try:
response = s3.create_bucket(Bucket=bucket_name)
print(f"Bucket {bucket_name} created successfully.")
except ClientError as e:
print(f"Error creating bucket: {e}")
PythonBu yapılandırmayı Hetzner’ın desteklediği özellik setine göre yaptığımızı hatırlatırım.
Özellik | Desteklenen Standart |
---|---|
AWS Signature version | Version 4 algorithm |
Storage classes | Standard |
Server-Side Encryption (SSE) | SSE-C |
Hetzner’da S3 Bucket Nasıl Oluşturulur?
Arayüz üzerinden direk olarak S3 bucket oluşturmak için Proje içerisinde sol menüden “Object Storage” seçilir. “Create Bucket” butonuna tıklanır ve uygun şekilde doldurulur.
“Create & But Now” dendiği anca bucketiniz hazırlanmaya başlar ve çok kısa bir sürede aktif olur. Panelinizde aşağıdaki gibi gözükmeye başlar.
Dosyalarınızı ister “Files” sekmesinden “Upload Files” yönergeleri ile yapabilir, isterseniz de S3 API destekli uygulamalar üzerinden yükleyebilirsiniz.
Hetzner S3 Credentials Nasıl Alınır?
Sol menüde bulunan “Security” geçiş yapın, hemen ardından “S3 Credentials” sekmesine tıklayın. Karşınıza çıkan alandan “Generate credentials” deyin ve bir açıklama girin.
Size aşağıdaki gibi 2 adet anahtar verecek bunlarla bucketınıza erişerek istediğiniz işlemleri yapabilirsiniz.
Access Key: 2T3BUTKTB6G580HKFKTK
Secret Key: EVjEioyd7WCQhYRUi3ScFJ8r0NoKqQRM6WIOSbbI
PythonDiğer sağlayıcıların aksine oluşturduğunuz bu anahtar için erişim kuralı girebilirsiniz. Hangi bucketa erişmesi gerekiyorsa onun için kısıtlayabilirsiniz.
project_id
: Oluşturduğunuz projenin ID’si tarayıcının üstünde yazar(https://console.hetzner.cloud/projects/<project-ID>/servers)access_key
: Sistemden almış olduğunuz access key bilgisiyour-bucket-name
: bucket adınız.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam:::user/p<project_id>:<access_key>"
},
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::your-bucket-name",
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
PythonGirmiş olduğunuz bu bucket politikasını S3 uyumlu herhangi bir api ile sisteme kayıt edebilirsiniz. Minio’nun kendi clientini kullanmak isterseniz.
Önce kullanacağınız bucketi mc’ye tanıtın
mc alias set hetzner-bucket \
https://xyz.fsn1.your-objectstorage.com \
<your_access_key> <your_secret_key> \
--api "s3v4" \
--path "off"
PythonArdından oluşturduğunuz alias ile aşağıdaki kuralı uygulamaya geçebilirsiniz.
mc anonymous set-json my-policy.json <alias_name>/<bucket_name>
PythonKullanabileceğiniz S3 uyumlu bazı araçlar