Como fazer upload de arquivos do servidor do Amazon EC2 para o bucket do S3?

4

Qual é a maneira padrão de fazer upload de arquivos de um servidor web do EC2 para um bucket do S3 para entrega de conteúdo?

    
por John 30.06.2011 / 21:01

5 respostas

3

A resposta é bastante dependente do propósito. Por exemplo, se sua instância do EC2 estiver executando um aplicativo PHP, usar o PHP-SDK seria a melhor rota. Alguns aplicativos podem achar útil montar um bucket do S3 como um sistema de arquivos local (por exemplo, S3-fusível).

Se, no entanto, você estiver simplesmente tentando fazer upload de um arquivo por meio do shell do EC2 para o S3, recomendo o script aws de Tim Kay . É um script perl independente que pode ser executado sem instalação ou pode ser instalado para configurar as funções de alias. O upload de um arquivo para um bloco existente usando esse script equivale ao seguinte:

s3put bucket_name/filename.ext /path/to/local/file/name.ext

Ele suporta a maioria dos recursos do AWS e é suficientemente detalhado em suas mensagens de erro para facilitar bastante a depuração de um problema.

    
por 12.12.2011 / 05:57
2

Você pode usar a ferramenta s3cp. É como um comando scp. Para download e documentação, consulte link e link

Após a instalação, você pode, por exemplo, copiar para o S3: s3cp arquivo local s3: // bucket / object [/]

    
por 01.07.2011 / 09:29
2

Aqui está um exemplo simples para ilustrar o upload diretamente para o s3

link

código:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  </head>
  <body>
  <h3>refresh the page after you've submitted to see your new image</h3>
    <div style="width:300px">
    <form action="http://s3.amazonaws.com/dev.sente" method="post" enctype="multipart/form-data">
      <fieldset>
      <input type="hidden" name="acl" value="public-read" /> <br />
      <i>name of key:</i><input type="text" name="key" readonly="true" value="image.jpg" /> <br />
      <input name="file" type="file" /> <br />
      <input name="submit" value="Upload" type="submit" />
    </fieldset>
    </form>
  </div>
    <br>
    <a href="http://s3.amazonaws.com/dev.sente/image.jpg">http://s3.amazonaws.com/dev.sente/image.jpg</a>
      <br>
      <a href="http://s3.amazonaws.com/dev.sente/image.jpg"><img src="http://s3.amazonaws.com/dev.sente/image.jpg"></a></a></body></html>

copiadodaminharespostaparaumaperguntasemelhante- aqui

    
por 11.11.2011 / 13:03
1

Em geral, se você estiver enviando arquivos de um aplicativo para o S3 com o objetivo de configurar um CDN para usar para esse aplicativo, primeiro você deve procurar e ver se esse aplicativo ainda não tem a funcionalidade ou um plug-in fazer isso. Se você pegar Wordpress por exemplo, há o W3 Total Cache plugin que lida com isso para você muito bem. É claro que é escrito em PHP e usa as chamadas da API da AWS para lidar com uploads / exclusões quando necessário.

Se você estiver escrevendo seu próprio aplicativo, procure as bibliotecas que auxiliam na comunicação com a AWS. Para Python, você gostaria de ver Boto , por exemplo, que permite interagir com a API da AWS sem problemas. Além disso, você sempre pode consultar a Amazon para obter informações sobre as outras APIs do SDK que você pode usar.

    
por 11.11.2011 / 14:14
0

Via HTTP, da mesma forma que você faz o upload para o S3, bem, em qualquer outro lugar.

    
por 30.06.2011 / 21:56