MG
Download Amazon s3
Olá Colegas,
Estou tendo dificuldades em fazer download de arquivos da amazon s3.
Obtenho o result, mas na hora e enviar para o navegador, nada acontece.
Alguém já conseguiu implementar?
Veja o meu código abaixo, usando parte do exemplo da Amazon:
Estou tendo dificuldades em fazer download de arquivos da amazon s3.
Obtenho o result, mas na hora e enviar para o navegador, nada acontece.
Alguém já conseguiu implementar?
Veja o meu código abaixo, usando parte do exemplo da Amazon:
- <?php
- ...
- $filename = $doc->url;
- $result = $s3->getObject([
- 'Bucket' => $bucket,
- 'Key' => $filename,
- ]);
- header("Content-Type: {$result['ContentType']}");
- echo $result['Body'];
- ....
- ?>
Resolvido. Usei "Stream Wrapper" da AWS.
https://docs.aws.amazon.com/pt_br/sdk-for-php/v3/developer-guide/s3-stream-wrapper.html
Amigo Marcelo, pode dar um norte de como fez o formulário de upload para o S3?
Boa tarde Leonardo,
Primeiro é preciso instalar o SDK da Amazon.
O procedimento ocorre no método onSave. Quando você usa TFile, o FW faz o envio em primeiro lugar para a posta "tmp".
Baseado nisso, basta ter o "target_file" que é basicamente $target_file = "rmp/".$data->nome_arquivo.
Um exemplo
Valeu Marcelo,
Obrigado pela ajuda.
Olá Marcelo, você pode dar mais detalhes de como você instalou o sdk da amazon? Instalei via composer na raiz do template do framework, mas quando vou usar o "use AwsS3S3Client;" na classe, ele dá um erro estranho:
Fatal error: ProvaAnexoForm cannot use AwsS3S3Client - it is not a trait in /var/www/html/portalprovas/portal/app/control/provas_questoes/ProvaAnexoForm.class.php on line 14
Olá, vamos algumas verificações:
1) Após o composer, veje se o pacote foi instalado corretamente em "vence/aws";
2) Após a abertura do arquivo .php, deve-se usar o caminho correto da classe, conforme abaixo:
Ops....
Diretório de instalação do pacote
Se possível, postar o código fonte...
Olá Marcelo, muito obrigado pela ajuda! O problema era o local em que eu estava colocando o "use...": na vdd ele deve ser colocado antes da criação da classe:
Sim, sempre antes da criação da classe.
Sucesso!
Olá Marcelo!
Como você conseguiu resolver os conflitos de pacotes ao rodar "composer require aws/aws-sdk-php" ?
Não estou conseguindo resolver o conflito com o pacote guzzlehttp/guzzle.
Geovani
Eu não tive este problema.
Talvez seja melhor criar um tópico para que os colegas possam ajudar!
Marcelo, poderia compartilhar a forma que vc utilizou para exibir ou fazer o download de arquivos salvos no s3?
Francisco, segue o método implementado: