elavora / api-storage-s3
Armazenamento S3 opcional para o framework Elavora
Requires
- php: >=8.3
- aws/aws-sdk-php: ^3.381
- elavora/api-framework: ^2.0
Requires (Dev)
- elavora/code-standards: ^1.1
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^10.5 || ^11.0 || ^12.0
Suggests
None
Provides
None
Conflicts
None
Replaces
None
- dev-main / 1.0.x-dev
- 1.0.0
- v0.2.0
- v0.1.1
- dev-ci/adota-pipeline-central
- dev-automation/shared-semver-release
- dev-ci/packagist-sync
- dev-fix/estabiliza-pacote
- dev-ci/valida-pr-antes-merge
- dev-docs/adiciona-codeowners
- dev-docs/adiciona-badges-readme
- dev-docs/adiciona-processo-release
- dev-docs/adiciona-templates-github
- dev-docs/adiciona-contribuicao
- dev-docs/adiciona-licenca
- dev-ci/adiciona-quality
- dev-security/adiciona-codeql
- dev-docs/adiciona-politica-seguranca
- dev-chore/configura-dependabot
- dev-latest-release
- dev-docs/documenta-publicacao-composer
- dev-release/composer-publicacao
This package is auto-updated.
Last update: 2026-10-30 20:33:16 UTC
README
Armazenamento S3 opcional para o framework Elavora.
Registre S3StorageExtension com bucket e as configurações aceitas pelo
Aws\S3\S3Client, como region, version, credentials, endpoint e
use_path_style_endpoint.
$application->extend(new S3StorageExtension([ 'bucket' => 'uploads', 'region' => 'us-east-1', 'version' => 'latest', ])); $storage = $application->container()->get(Storage::class); $url = $storage->temporaryUrl('reports/example.txt');
O pacote registra S3ClientFactory internamente e reutiliza clientes com a
mesma configuração via S3ClientManager. Para trocar a criação do cliente,
registre uma factory própria antes da extensão ou informe clientFactory no
construtor.
Este pacote é aditivo. Ele não substitui Elavora\Api\Interface\Storage,
Elavora\Api\Integration\Storage\S3Storage ou o alias legado
Elavora\Api\Integration\S3Storage do módulo elavora/api-api.
Especificação completa, exemplos e erros: docs/USO.md.
Instalação
composer require elavora/api-storage-s3
Requisitos: PHP 8.3 ou superior, elavora/api-framework ^2.0 e aws/aws-sdk-php ^3.381.
Versão 1.0: atualiza o pacote para o elavora/api-framework 2.0, que substitui o ^0.3.1, e sobe o PHP mínimo de
8.1 para 8.3. A API do pacote não muda; quem usa o ^0.3 do framework precisa atualizar junto (veja o
guia de migração).
Desenvolvimento e testes
Você só precisa de Docker. O ambiente é a imagem ghcr.io/elavora/php-dev:8.3-latest: abra o repositório no VS Code
com Dev Containers: Reopen in Container, ou rode no PowerShell:
docker run --rm --mount "type=bind,source=$($PWD.Path),target=/workspace" -w /workspace ghcr.io/elavora/php-dev:8.3-latest sh -lc 'git config --global --add safe.directory /workspace && composer install --no-interaction --prefer-dist && composer check'
Scripts do Composer:
composer check # lint, testes e PHPStan composer test # testes PHPUnit composer lint # sintaxe (elavora-standards lint) composer analyse # PHPStan, nível 8
Os testes não precisam de S3, de rede nem de credenciais: usam o Aws\MockHandler do SDK.
O código segue o padrão PER-CS, com as regras do pacote elavora/code-standards. No devcontainer, o arquivo é
formatado ao salvar; no PR, o CI formata o que faltou e commita a correção (style: organiza o código).
Os testes rodam no CI, no workflow Qualidade, em todo PR. O passo a passo, o que roda no CI e como reproduzi-lo
estão em Desenvolvimento e testes.
Como contribuir
- Crie uma branch a partir da
main(feat/...,fix/...oudocs/...). - Faça commits em português do Brasil, no padrão Conventional Commits (
feat: ...,fix: ...,docs: ...). - Rode
composer checkantes de abrir o PR. - Abra o PR para a
main, preencha o template e aplique as labels que definem a versão (Versões e release). - Confira o comentário do pipeline de qualidade no PR e só integre com os checks verdes.
Versões
Cada PR integrado na main gera uma versão automaticamente, conforme as labels do PR: sem a label release sai uma
beta (1.0.1-beta.1), com ela sai a estável (1.0.1). As tags novas não têm o prefixo v, e as notas de cada
GitHub Release são geradas em português a partir dos PRs. Veja Versões e release.
Documentação
- Guia de uso: a especificação do pacote, com a API pública, as opções, os erros e a migração.
- Desenvolvimento e testes: ambiente, como rodar os testes e o que roda no CI.
- Automação do repositório: workflows, Dependabot, estilo de código, labels e versões.
Licença
MIT