architect/_archive/_s3-nomenclature/USER_ACCESS.md

Учетные данные S3

КОНФИДЕНЦИАЛЬНО - НЕ ПУБЛИКОВАТЬ


Beget S3 Credentials

Основные данные

Endpoints


Конфигурация для s3cmd

Файл: ~/.s3cfg

[default]
access_key = F1AIVIQI0DE3PJGIWQC1
secret_key = iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ
host_base = s3.ru1.storage.beget.cloud
host_bucket = fe2c1d30dc11-s3-0kt.s3.ru1.storage.beget.cloud
use_https = True

Команда настройки:

s3cmd --configure

Конфигурация для AWS CLI

Файл: ~/.aws/credentials

[beget]
aws_access_key_id = F1AIVIQI0DE3PJGIWQC1
aws_secret_access_key = iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ

Файл: ~/.aws/config

[profile beget]
region = ru1
output = json
s3 =
    endpoint_url = https://s3.ru1.storage.beget.cloud

Использование:

aws s3 ls s3://fe2c1d30dc11-s3-0kt/ --profile beget --endpoint-url https://s3.ru1.storage.beget.cloud

Конфигурация для Python (boto3)

import boto3

# Создание клиента S3
s3_client = boto3.client(
    's3',
    endpoint_url='https://s3.ru1.storage.beget.cloud',
    aws_access_key_id='F1AIVIQI0DE3PJGIWQC1',
    aws_secret_access_key='iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ',
    region_name='ru1'
)

# Пример: загрузка файла
s3_client.upload_file(
    'local_file.jpg',
    'fe2c1d30dc11-s3-0kt',
    'nomenclature/images/product.jpg'
)

# Пример: скачивание файла
s3_client.download_file(
    'fe2c1d30dc11-s3-0kt',
    'nomenclature/images/product.jpg',
    'local_file.jpg'
)

# Пример: список файлов
response = s3_client.list_objects_v2(
    Bucket='fe2c1d30dc11-s3-0kt',
    Prefix='nomenclature/images/'
)
for obj in response.get('Contents', []):
    print(obj['Key'])

Конфигурация для PHP

<?php
require 'vendor/autoload.php';

use Aws\S3\S3Client;

$s3 = new S3Client([
    'version' => 'latest',
    'region'  => 'ru1',
    'endpoint' => 'https://s3.ru1.storage.beget.cloud',
    'credentials' => [
        'key'    => 'F1AIVIQI0DE3PJGIWQC1',
        'secret' => 'iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ',
    ],
]);

// Загрузка файла
$result = $s3->putObject([
    'Bucket' => 'fe2c1d30dc11-s3-0kt',
    'Key'    => 'nomenclature/images/product.jpg',
    'Body'   => fopen('local_file.jpg', 'r'),
    'ACL'    => 'public-read',
]);

// Получение URL
$url = $s3->getObjectUrl('fe2c1d30dc11-s3-0kt', 'nomenclature/images/product.jpg');
?>

Конфигурация для curl

Загрузка файла (требует подписи)

# Для публичных файлов после настройки Bucket Policy:
curl -X PUT \
  --data-binary @local_file.jpg \
  https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/product.jpg

Скачивание файла (публичный)

curl -o local_file.jpg \
  https://s3.0kt.ru/fe2c1d30dc11-s3-0kt/nomenclature/images/premier_01001.jpg

Безопасность

✅ Рекомендации:

  1. НЕ публиковать эти данные в открытом доступе
  2. НЕ коммитить в Git (добавить в .gitignore)
  3. Использовать переменные окружения:
    bash export S3_ACCESS_KEY="F1AIVIQI0DE3PJGIWQC1" export S3_SECRET_KEY="iRDHW0PJsqTb070EDUdOpCQuKwtw7C9POX0KGsmZ"
  4. Ограничить доступ к этому файлу:
    bash chmod 600 USER_ACCESS.md

Bucket Policy (только чтение для публики)

Настроить в панели Beget для публичного доступа к файлам:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": "*",
      "Action": "s3:GetObject",
      "Resource": "arn:aws:s3:::fe2c1d30dc11-s3-0kt/nomenclature/*"
    }
  ]
}

Это разрешает только чтение (GetObject) для всех, но запись требует ключей.


Создано: 2025-11-18
Уровень доступа: КОНФИДЕНЦИАЛЬНО
Владелец: kondurov