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)
Tarqatmalarimizga obuna bo‘ling

Xosting sohasidagi yangiliklardan birinchilardan bo‘lib xabardor bo‘ling