Telegram
+998 (71) 205-80-00

serverplus'da S3 obyekt xotirasi

E’lon qilingan: 25.07.26
Ulashish

Obyekt xotirasi — bu fayllarga disk kabi emas, HTTP orqali murojaat qilinadigan joy. Obyektlarni (fayllarni) «baket»larga (buckets) joylaysiz va har bir obyekt o'z kaliti bo'yicha ochiladi. serverplus'da u S3-mos, shuning uchun barcha odatiy vositalar bilan ishlaydi: aws-cli, rclone, boto3 va boshqa SDK'lar.

Qachon ishlatiladi

  • Bekaplar va arxivlar — MB damplari, snapshotlar, loglar; serverlardan alohida saqlanadi.
  • Media va foydalanuvchi yuklamalari — veb-ilova rasmlari, videolari, hujjatlari.
  • Statika va fayl tarqatish — sayt assetlari, distributivlar, hisobotlar.
  • Ma'lumot almashish xizmatlar o'rtasida va server diskida saqlash noqulay katta hajmlar uchun.

Agar ilova lokal diskka yozgandek fayl tizimi kerak bo'lsa — bu tom (Cinder), obyekt xotirasi emas. Obyekt xotirasi — «faylni kalit bo'yicha qo'ydim/oldim» haqida.

1. Endpoint, baket va kalitlar

Ulanish uchun yagona manzil (Amazon S3 bilan mos, standart S3 API'ni qo'llab-quvvatlaydi):

https://object-store.serverplus.uz

Baket yaratish: cloud.serverplus.uz panelida «Obyekt xotirasi» bo'limini oching → «Baket yaratish», noyob nom va kirish turini bering — xususiy (xizmat ma'lumotlari uchun) yoki ommaviy. Yaratilgach baket S3 API orqali ochiladi.

Kalitlarni olish: «Kirish» → «S3/EC2 hisob ma'lumotlari» bo'limi → ACCESS_KEY + SECRET_KEY juftligini yarating. Ular API, CLI va ilovalar orqali ulanish uchun ishlatiladi.

S3 kalitlari — bu fayllaringizga kirish. SECRET_KEY'ni ommaviy kodga joylamang, uni parol kabi saqlang, turli xizmatlar uchun alohida kalitlar yarating va keraksizlarini bekor qiling. Xizmat ma'lumotlari uchun xususiy baketlardan foydalaning.

2. aws-cli'ni sozlash

aws configure
# AWS Access Key ID:     <access key>
# AWS Secret Access Key: <secret>
# Default region name:   us-east-1
# Default output format: json

# path-style addressing for S3-compatible storage
aws configure set default.s3.addressing_style path

Endpoint manzilini takrorlamaslik uchun taxallus qulay:

alias s3='aws --endpoint-url https://object-store.serverplus.uz s3'

3. Asosiy amallar

s3 mb s3://my-bucket                 # create a bucket
s3 cp report.pdf s3://my-bucket/     # upload a file
s3 sync ./site s3://my-bucket/site/  # sync a directory
s3 ls s3://my-bucket/                # list objects
s3 cp s3://my-bucket/report.pdf .    # download
s3 rm s3://my-bucket/report.pdf      # delete

4. Koddan: Python (boto3)

import boto3

s3 = boto3.client(
    "s3",
    endpoint_url="https://object-store.serverplus.uz",
    aws_access_key_id="<access key>",
    aws_secret_access_key="<secret>",
    region_name="us-east-1",
)

s3.upload_file("photo.jpg", "my-bucket", "images/photo.jpg")

for obj in s3.list_objects_v2(Bucket="my-bucket").get("Contents", []):
    print(obj["Key"], obj["Size"])

5. rclone: sinxronizatsiya va montaj

rclone muntazam sinxronizatsiya va hatto baketni papka sifatida montaj qilish uchun qulay. Konfig ~/.config/rclone/rclone.conf:

[sp]
type = s3
provider = Other
access_key_id = <access key>
secret_access_key = <secret>
endpoint = https://object-store.serverplus.uz
rclone sync ./data sp:my-bucket/data     # sync
rclone ls sp:my-bucket                    # list
rclone mount sp:my-bucket /mnt/s3 &        # mount as a folder

6. Versiyalash va hayotiy tsikl

Tasodifiy qayta yozishdan himoyalanish va eskini avtomatik tozalash uchun:

# enable bucket versioning
aws --endpoint-url https://object-store.serverplus.uz \
  s3api put-bucket-versioning --bucket my-bucket \
  --versioning-configuration Status=Enabled
  • Versiyalash obyektlarning oldingi versiyalarini saqlaydi — qayta yozish yoki o'chirishni orqaga qaytarish mumkin.
  • Lifecycle qoidalari N kundan eski obyektlarni avtomatik o'chiradi yoki arxivlaydi — loglar va bekaplar uchun qulay.

7. Katta fayllar

Katta obyektlarni aws-cli va rclone qismlarga bo'lib (multipart) avtomatik yuklaydi — bu ishonchliroq: uzilishda faqat muvaffaqiyatsiz qism qayta yuklanadi. Odatda alohida sozlash kerak emas.

8. Ommaviy kirish va vaqtinchalik havolalar

Odatda obyektlar xususiy. Baketni tashqariga ochmasdan faylga kirish berish uchun presigned URL — vaqtinchalik imzolangan havoladan foydalaning:

s3 presign s3://my-bucket/report.pdf --expires-in 3600
# returns a link valid for 1 hour

Baketni keraksiz o'rinda ommaviy qilmang. Ommaviy kirish sayt statikasi uchun o'rinli, xususiy fayllar uchun esa «hammaga ochish» emas, vaqtinchalik havolalardan foydalaning.

9. Odatiy stsenariylar

  • Bekaplar: MB damplari va arxivlar jadval bo'yicha («Zaxira nusxalash strategiyasi» maqolasiga qarang).
  • Ilova yuklamalari xotirasi: foydalanuvchi rasmlari va fayllari — server o'smaydi, fayllar havolalar orqali beriladi.
  • Statika tarqatish: assetlar va distributivlar, kerak bo'lsa — CDN orqasida.
  • Katta hajmlarni ko'chirish serverlar o'rtasida (to'g'ridan-to'g'ri nusxalashdan tez).

Xavfsizlik

  • Alohida kalitlar va minimal huquqlar. Har bir ilovaga — o'z S3-kalitlari; keraksizlarini bekor qiling, vaqti-vaqti bilan yangilang.
  • Sukut bo'yicha xususiylik. Ommaviy kirish — faqat ongli ravishda; vaqtinchalik kirish uchun — presigned URL.
  • HTTPS va shifrlash. Faqat https-endpoint orqali ishlang; maxfiy ma'lumotlarni yuklashdan oldin shifrlang.
  • Versiyalash — tasodifiy va qasddan o'chirishdan himoya.

Ko'p beriladigan savollar

SignatureDoesNotMatch xatosi. Odatda noto'g'ri secret, mijozda soat farqi yoki noto'g'ri endpoint/region. Kalitlar, vaqt va manzilni tekshiring.

Baketga murojaatda Access Denied. Yo kalitlar boshqa loyihadan, yo ularda shu baketga huquq yo'q. Qaysi kalit bilan murojaat qilayotganingizni va kirish siyosatini tekshiring.

Mijoz baketni topmayapti / g'alati adresatsiya xatolari. path-style'ni yoqing: aws configure set default.s3.addressing_style path (yoki SDK/rclone'dagi tegishli parametr).

serverplus endpoint manzili qanday? https://object-store.serverplus.uz — yagona S3-mos endpoint. Uni mijozga --endpoint-url sifatida (yoki SDK/rclone endpoint maydonida) berasiz.

Tavsiya etamiz
Loyihangiz uchun eng yaxshi yechimni tanlaymiz
Ma’lumotlarni to‘ldiring va menejer tasdiqlash uchun siz bilan bog‘lanadi
Texnik qo‘llab-quvvatlash raqami
+998 (71) 205-80-00
Bog‘lanish uchun e-mail
info@serverplus.uz
Ish soatlari
Maslahatni qanday olish sizga qulay?
Sizni nima qiziqtiradi? (ixtiyoriy)
Bepul maslahat
Operator emas, muhandis javob beradi
Spam va ortiqcha savdolarsiz
Avval mustaqil sinab ko‘rmoqchimisiz?Har bir yangi foydalanuvchiga VPS, Dedicated Server, S3-xotira va Kubernetesni test qilish uchun 100 000 so‘m bonus beriladi.
Ro‘yxatdan o‘tish va bonus olish
Ma’lumotlaringizni uchinchi shaxslarga bermaymiz
Tarqatmalarimizga obuna bo‘ling

Xosting sohasidagi yangiliklardan birinchilardan bo‘lib xabardor bo‘ling