A descarregar um balde S3 inteiro?

Reparei que não parece haver uma opção para descarregar um balde S3 inteiro da consola de gestão da AWS.

Há uma maneira fácil de apanhar tudo num dos meus baldes? Eu estava pensando em tornar a pasta de raiz pública, usando {[[0]} para pegar tudo, e depois torná-la privada novamente, mas eu não sei se há uma maneira mais fácil.

Author: codeforester, 2011-12-28

23 answers

AWS CLI

Documentação para AWS CLI

A AWS lançou recentemente as suas ferramentas de linha de comando. Isto funciona muito como o robot e pode ser instalado usando sudo easy_install awscli ou sudo pip install awscli

Uma vez instalado, você pode então simplesmente executar:

Comando:

aws s3 sync s3://mybucket .

Resultado:

download: s3://mybucket/test.txt to test.txt
download: s3://mybucket/test2.txt to test2.txt

Isto irá transferir todos os seus ficheiros (one-way sync). Ele irá Não apagar quaisquer ficheiros existentes na sua pasta actual (a menos que especifique -- delete ), e não alterará nem apagará nenhum arquivo em S3.

Você também pode fazer S3 bucket para S3 bucket, ou local para S3 bucket sync.

Confira a documentação e outros exemplos:

Http://docs.aws.amazon.com/cli/latest/reference/s3/sync.html

 861
Author: Layke, 2017-02-05 11:07:58

Pode usar o s3cmd para baixar o seu balde.

s3cmd --configure
s3cmd sync s3://bucketnamehere/folder /destination/folder

Actualizar

Existe outra ferramenta que pode usar chamada Rclone . Abaixo está uma amostra de código na documentação Rclone.

rclone sync /home/local/directory remote:bucket
 150
Author: philhq, 2016-09-01 01:48:37

Eu usei alguns métodos diferentes para copiar dados do Amazon S3 para uma máquina local, incluindo o s3cmd,e de longe o mais fácil é Cyberduck . Tudo o que precisa de fazer é introduzir as suas credenciais Amazon e usar a interface simples para transferir / enviar / sincronizar qualquer um dos seus baldes / pastas / ficheiros.

Screenshot

 68
Author: wedocando, 2016-07-08 12:17:38

Para obter com o AWS S3 CLI :

aws s3 cp s3://WholeBucket LocalFolder --recursive
aws s3 cp s3://Bucket/Folder LocalFolder --recursive

Para transferir usando o código, Use AWS SDK .

Para obter usando GUI, Use Cyberduck .

Espero que ajude.. :)
 24
Author: Sarat Chandra, 2017-04-10 11:23:12

Você tem basicamente muitas opções para fazer isso, mas o melhor é usar AWS CLI

Aqui está uma passagem.
  • Passo 1

Descarregue e instale AWS CLI na sua máquina

Instalar o CLI AWS com o instalador MSI (Windows)

Instale o CLI AWS usando o instalador empacotado (Linux, OS X, ou Unix))

  • Passo 2

Configurar o AWS CLI

enter image description here

Certifique-se que introduz uma chave de acesso válida e chave secreta que recebeu quando criou a conta

  • Passo 3

Sincronizar o balde s3 com o seguinte comando

aws s3 sync s3://yourbucket /local/path

Substituir acima do comando com os seguintes dados

Yourbucket > o seu balde s3 que deseja transferir

/local / localização > localização no seu sistema local onde deseja transferir todas as ficheiros

Espero que isto ajude!
 23
Author: Darshan Lila, 2018-07-20 17:17:29

O navegador S3 é a maneira mais fácil que encontrei. É um software excelente... E é gratuito para uso não comercial. Só janelas.

Http://s3browser.com/

 17
Author: dworrad, 2016-07-08 12:18:18

Se usar o Visual Studio, faça o download http://aws.amazon.com/visualstudio/

Depois de instalado, vá ao Visual Studio-AWS Explorer-S3-Your bucket-Double click

Na janela poderá seleccionar todos os ficheiros. Clique com o botão direito e baixe os arquivos.

 15
Author: Ives.me, 2014-02-04 00:23:52

Outra opção que poderia ajudar alguns utilizadoresdo osx , étransmitir . É um programa ftp que também lhe permite conectar aos seus arquivos s3. E tem uma opção para montar qualquer armazenamento ftp ou s3 como pasta no localizador. Mas é só por um tempo limitado.

 9
Author: Diederik, 2013-10-17 07:50:47

Fiz um pouco de desenvolvimento para o s3 e não encontrei uma maneira simples de baixar um balde inteiro. Se você quiser codificar em Java o jets3t lib é fácil de usar para criar uma lista de baldes e iterate sobre essa lista para baixá-los.

Http://jets3t.s3.amazonaws.com/downloads.html

Primeiro obter um conjunto de chave pública privada a partir da consula de gestão AWS para que possa criar um objecto S3service...

AWSCredentials awsCredentials = new AWSCredentials(YourAccessKey, YourAwsSecretKey);
s3Service = new RestS3Service(awsCredentials);
Então arranja um conjunto dos teus baldes. objecto...
S3Object[] objects = s3Service.listObjects(YourBucketNameString);

Finalmente, iterate sobre esse array para baixar os objetos um de cada vez com este código...

S3Object obj = s3Service.getObject(bucket, fileName);
            file = obj.getDataInputStream();
Coloquei o código de ligação numa threadsafe singleton. A sintaxe de tentativa/captura necessária foi omitida por razões óbvias.

Se preferires codificar em Python, podes usar o Boto em vez disso.

Depois de olhar pelo BucketExplorer, faz o que quiseres. https://forums.aws.amazon.com/thread.jspa?messageID=248429
 8
Author: jeremyjjbrown, 2011-12-28 21:35:57

Use este comando com o AWS CLI:

aws s3 cp s3://bucketname. --recursive
 6
Author: ashack, 2016-11-04 21:30:07

Se usar o Firefox com o S3Fox, isso permite-lhe seleccionar todos os ficheiros (shift-select first and last) e rightclick e transferir todos... Eu fiz isso com 500 + arquivos W / O Problema

 5
Author: jpwynn, 2012-09-14 06:23:36

A Resposta de @Layke é boa, mas se tiver uma tonelada de dados e não quiser esperar para sempre, deve prestar muita atenção a esta documentação sobre Como Conseguir que o comando de sincronização do AWS S3 CLI sincronize os baldes com uma enorme paralelização. Os seguintes comandos irão dizer ao CLI AWS para usar 1000 tópicos para executar tarefas (cada um pequeno ficheiro ou uma parte de uma cópia multipart) e olhar para a frente 100 000 tarefas:

aws configure set default.s3.max_concurrent_requests 1000
aws configure set default.s3.max_queue_size 100000

Depois de as Executar, poderá usar o comando de sincronização simples como se segue:

aws s3 sync s3://source-bucket/source-path s3://destination-bucket/destination-path

Ou

aws s3 sync s3://source-bucket/source-path c:\my\local\data\path

Num sistema com núcleos CPU 4 e RAM 16GB, para casos como o meu (ficheiros 3-50GB) a velocidade de sincronização/cópia passou de cerca de 9,5 MiB/s para 700+MiB/s, um aumento de velocidade de 70x sobre a configuração predefinida.

 5
Author: James, 2018-01-05 13:24:23

Quando no Windows, a minha ferramenta GUI preferida para isto é o Explorador de amora para S3., http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx tem um explorador de ficheiros bastante polido, uma interface tipo ftp.

 4
Author: fundead, 2013-10-29 03:15:30

Podes fazer isto com https://github.com/minio/mc :

mc cp -r https://s3-us-west-2.amazonaws.com/bucketName/ localdir

O Mc também suporta sessões, downloads reutilizáveis, uploads e muito mais. mc suporta sistemas operacionais Linux, OS X e Windows. Escrito em Golang e lançado em Apache Versão 2.0.

 3
Author: Krishna Srinivas, 2015-12-08 20:28:02

Se só tiver ficheiros lá (sem subpastas), uma solução rápida é seleccionar todos os ficheiros ({[[0]} na primeira, Shift+click na última) e carregar em Enter ou right click e seleccionar Open. Para a maioria dos arquivos de dados isso irá baixá-los diretamente para o seu computador.

 3
Author: Lukasz Czerwinski, 2016-02-05 23:16:46
  1. O usuário do Windows precisa baixar o S3EXPLORER a partir deste link, que também tem instruções de instalação: - http://s3browser.com/download.aspx

  2. Em seguida, forneça credenciais AWS como secretkey, accesskey e região para o s3explorer, este link contém instruções de configuração para s3explorer: Copy Paste Link em brower: s3browser.com/s3browser-first-run.aspx

  3. Agora todos os seus baldes s3 seriam visíveis no painel esquerdo de s3explorer.

  4. Basta selecionar o balde, e clicar no menu Buckets no canto superior esquerdo, em seguida, selecione baixar todos os arquivos para a opção do menu. Abaixo está a imagem do mesmo:

Ecrã De Selecção Do Balde

  1. Em seguida, navegue uma pasta para baixar o balde em um determinado lugar

  2. Clique em OK e seu download começará.

 1
Author: Patrick R, 2016-07-22 12:49:55
A sincronização Aws é a solução perfeita. Não faz um duplo sentido.. é uma maneira de ir da fonte ao destino. Além disso, se você tem muitos itens no balde será uma boa idéia para criar S3 endpoint primeiro para que o download acontece mais rápido (porque o download não acontece através da internet, mas através da intranet) e sem encargos
 1
Author: Deepak, 2017-01-26 10:55:09
Aqui estão algumas coisas para descarregar todos os baldes, listá-los, listar o seu conteúdo.
    //connection string
    private static void dBConnection() {
    app.setAwsCredentials(CONST.getAccessKey(), CONST.getSecretKey());
    conn = new AmazonS3Client(app.getAwsCredentials());
    app.setListOfBuckets(conn.listBuckets());
    System.out.println(CONST.getConnectionSuccessfullMessage());
    }

    private static void downloadBucket() {

    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            app.setBucketKey(objectSummary.getKey());
            app.setBucketName(objectSummary.getBucketName());
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                //DOWNLOAD
                try 
                {
                    s3Client = new AmazonS3Client(new ProfileCredentialsProvider());
                    s3Client.getObject(
                            new GetObjectRequest(app.getBucketName(),app.getBucketKey()),
                            new File(app.getDownloadedBucket())
                            );
                } catch (IOException e) {
                    e.printStackTrace();
                }

                do
                {
                     if(app.getBackUpExist() == true){
                        System.out.println("Converting back up file");
                        app.setCurrentPacsId(objectSummary.getKey());
                        passIn = app.getDataBaseFile();
                        CONVERT= new DataConversion(passIn);
                        System.out.println(CONST.getFileDownloadedMessage());
                    }
                }
                while(app.getObjectExist()==true);

                if(app.getObjectExist()== false)
                {
                    app.setNoObjectFound(true);
                }
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
}

/----------------------------Métodos De Extensão-------------------------------------/

//Unzip bucket after download 
public static void unzipBucket() throws IOException {
    unzip = new UnZipBuckets();
    unzip.unZipIt(app.getDownloadedBucket());
    System.out.println(CONST.getFileUnzippedMessage());
}

//list all S3 buckets
public static void listAllBuckets(){
    for (Bucket bucket : app.getListOfBuckets()) {
        String bucketName = bucket.getName();
        System.out.println(bucketName + "\t" + StringUtils.fromDate(bucket.getCreationDate()));
    }
}

//Get the contents from the auto back up bucket
public static void listAllBucketContents(){     
    do {
        for (S3ObjectSummary objectSummary : app.getS3Object().getObjectSummaries()) {
            if(objectSummary.getKey().contains(CONST.getDesiredKey())){
                System.out.println(objectSummary.getKey() + "\t" + objectSummary.getSize() + "\t" + StringUtils.fromDate(objectSummary.getLastModified()));
                app.setBackUpCount(app.getBackUpCount() + 1);   
            }
        }
        app.setS3Object(conn.listNextBatchOfObjects(app.getS3Object()));
    } 
    while (app.getS3Object().isTruncated());
    System.out.println("There are a total of : " + app.getBackUpCount() + " buckets.");
}

}

 1
Author: John Hanewich, 2017-06-23 15:48:03

Pode ser simples obtê - lo coms3cmd comando:

s3cmd get --recursive --continue s3://test-bucket local-directory/
 0
Author: Hubbitus, 2018-05-13 19:31:30

Como Neel Bhaat explicou neste blog , existem muitas ferramentas diferentes que podem ser usadas para este fim. Alguns são AWS fornecidos, onde a maioria são ferramentas de terceiros. Todas estas ferramentas requerem que você salve sua chave de conta AWS e segredo na própria ferramenta. Seja muito cauteloso ao usar ferramentas de terceiros, como as credenciais que você economizar pode custar-lhe, todo o seu valor e deixá-lo morto.

Portanto, eu sempre recomendo usar o AWS CLI para este propósito. Você pode simplesmente instalar isto a partir de Este link . Em seguida, execute o seguinte comando e salve a sua chave, valores secretos no AWS CLI.

aws configure

E use o seguinte comando para sincronizar o seu balde AWS S3 com a sua máquina local. (A máquina local deve ter o AWS CLI instalado)

aws s3 sync <source> <destination>

Exemplos:

1) para a armazenagem local de AWS S3

aws s3 sync <S3Uri> <LocalPath>

2) da Armazenagem Local à AWS S3

aws s3 sync <LocalPath> <S3Uri>
Do balde AWS s3 a outro balde
aws s3 sync <S3Uri> <S3Uri> 
 0
Author: Keet Sugathadasa, 2018-06-11 10:07:49
Se só quiser descarregar o balde da AWS, instale primeiro o CLI da AWS na sua máquina. No terminal, mude a pasta para onde deseja transferir os ficheiros e execute este comando.
aws s3 sync s3://bucket-name .

Se também quiser sincronizar as pastas locais e s3( no caso de ter adicionado alguns ficheiros na pasta local), execute este comando:

aws s3 sync . s3://bucket-name
 0
Author: Muzammil, 2018-09-20 07:06:19

Como @layke disse, é a melhor prática baixar o arquivo a partir do cli S3 é um seguro e seguro. Mas em alguns casos, as pessoas precisam usar o wget para baixar o arquivo e aqui está a solução

aws s3 presign s3://<your_bucket_name/>

Isto irá pré-assinar - lhe o URL público temporário que poderá usar para transferir o conteúdo do S3, usando o présign_url, no seu caso usando o wget ou qualquer outro cliente de download.

 0
Author: Balaji JB, 2018-09-24 03:59:34

Chrome apps extended-S3-browser

Pode usá-lo gratuitamente

Finalmente usei o Berry cloud. comprei-o e foi fixe. Cloud berry
 -1
Author: shareef, 2017-03-26 14:00:39