К содержимому

Документация

PHP SDK: S3: сохранение файлов

Выберите настроенное подключение через $ctx->storage('media'). Код подключения и разрешения проверяются системой. На внешнем S3 учитывается время передачи/обработки, а не объём как внутреннее хранение платформы.

Общий справочник SDK

Методы

putFromUrl

putFromUrl(string $url, ?string $key = null, ?string $mime = null): StoredFile

Скачать файл с сайта и загрузить в выбранное S3-подключение.

$file = $ctx->storage('media')->putFromUrl($ctx->param('image_url'), 'products/A-1.jpg');
$ctx->emit(['sku' => 'A-1', 'image_key' => $file->key], 'A-1');

Результат и особенности. Возвращает StoredFile. key и mime необязательны. Без key имя строится автоматически. В пробном прогоне загрузка не выполняется, dryRun=true.

put

put(string $key, string $content, string $mime = 'text/plain'): StoredFile

Записать небольшой текстовый файл: отчёт, JSON или CSV.

$content = json_encode(['count' => 12], JSON_UNESCAPED_UNICODE);
$file = $ctx->storage('media')->put('reports/count.json', $content, 'application/json');

Результат и особенности. Возвращает StoredFile. Предел текста 1 МБ. Для больших файлов и изображений используйте putFromUrl.

exists

exists(string $key): bool

Проверить наличие объекта по ключу.

$exists = $ctx->storage('media')->exists('products/A-1.jpg');

Результат и особенности. Возвращает bool. Проверка существования не гарантирует, что объект не изменится между запросами.

url

url(string $key, int $ttlSeconds = 3600): string

Получить временную подписанную ссылку на объект.

$downloadUrl = $ctx->storage('media')->url('products/A-1.jpg', 3600);

Результат и особенности. Возвращает строку. ttlSeconds задаётся в секундах, по умолчанию час. Не используйте временный URL как постоянный идентификатор; храните key.