Percebi que não parece haver uma opção para baixar um bucket S3 inteiro do AWS Management Console.
Existe uma maneira fácil de pegar tudo em um dos meus baldes? Eu estava pensando em tornar a pasta raiz pública, usando wget
para pegar tudo e depois torná-la privada novamente, mas não sei se existe uma maneira mais fácil.
amazon-s3
amazon-web-services
Rugbert
fonte
fonte
aws s3 sync
é o melhor. Mas ninguém apontou uma opção poderosa:dryrun
. Esta opção permite ver o que seria baixado / carregado de / para s3 quando você estiver usandosync
. Isso é realmente útil quando você não deseja substituir o conteúdo no seu local ou em um bucket s3. É assim que é usado:aws s3 sync <source> <destination> --dryrun
usei o tempo todo antes de enviar um novo conteúdo para um bucket para não fazer upload de alterações indesejadas.Respostas:
CLI da AWS
Consulte a " Referência de comandos da AWS CLI " para obter mais informações.
A AWS lançou recentemente suas ferramentas de linha de comando, que funcionam como boto e podem ser instaladas usando
ou
Depois de instalado, você pode simplesmente executar:
Por exemplo:
fará o download de todos os objetos no
mybucket
diretório atual.E irá produzir:
Isso fará o download de todos os seus arquivos usando uma sincronização unidirecional. Ele não excluirá nenhum arquivo existente no diretório atual, a menos que você especifique , e não irá alterar ou excluir nenhum arquivo no S3.
--delete
Você também pode fazer a sincronização do balde S3 para o balde S3 ou a sincronização local com o balde S3.
Confira a documentação e outros exemplos .
Enquanto o exemplo acima é como baixar um bucket completo, você também pode baixar uma pasta recursivamente executando
Isso instruirá a CLI a baixar todos os arquivos e chaves de pasta recursivamente no
PATH/TO/FOLDER
diretório dentro doBUCKETNAME
bucket.fonte
aws configure
e adicione o seuaccess key
esecret access key
que pode ser encontrado aqui .s3cmd
eCyberduck
, mas para mim,awscli
foi de longe a maneira mais rápida de baixar ~ 70.000 arquivos do meu balde.aws s3 sync
comando não carrega nada, mas exclui arquivos localmente se eles não existirem no S3. Veja a documentação .Você pode usar
s3cmd
para baixar seu balde:Há outra ferramenta que você pode usar chamada
rclone
. Este é um exemplo de código na documentação do Rclone:fonte
Usei alguns métodos diferentes para copiar dados do Amazon S3 para uma máquina local, incluindo
s3cmd
e, de longe, o mais fácil é o Cyberduck .Tudo que você precisa fazer é inserir suas credenciais da Amazon e usar a interface simples para baixar, fazer upload, sincronizar qualquer um de seus buckets, pastas ou arquivos.
fonte
Você tem muitas opções para fazer isso, mas a melhor é usar a CLI da AWS.
Aqui está um passo a passo:
Faça o download e instale a AWS CLI em sua máquina:
Configure a CLI da AWS:
Certifique-se de inserir o acesso válido e as chaves secretas que você recebeu quando criou a conta.
Sincronize o bucket S3 usando:
No comando acima, substitua os seguintes campos:
yourbucket
>> seu bucket do S3 que você deseja baixar./local/path
>> caminho no seu sistema local onde você deseja baixar todos os arquivos.fonte
s3://
prefixo no nome do bucket !!! Comaws s3 ls
você, você não precisa desses3://
prefixo, mas precisa decp
comando.Para fazer o download usando a AWS S3 CLI:
Para baixar usando o código, use o AWS SDK.
Para baixar usando a GUI, use o Cyberduck.
fonte
aws s3 cp s3://my-bucket-name ./local-folder --recursive --include "*" --exclude "excludeFolder/*" --exclude "includeFolder/excludeFile.txt"
Para o Windows, o S3 Browser é a maneira mais fácil que encontrei. É um excelente software e é gratuito para uso não comercial.
fonte
Se você usa o Visual Studio, faça o download do " AWS Toolkit for Visual Studio ".
Após a instalação, vá para o Visual Studio - AWS Explorer - S3 - Seu bucket - Clique duas vezes
Na janela, você poderá selecionar todos os arquivos. Clique com o botão direito e faça o download de arquivos.
fonte
A resposta de @Layke é boa, mas se você tiver uma tonelada de dados e não quiser esperar para sempre, leia " Configuração do AWS CLI S3 ".
Os comandos a seguir instruirão a CLI da AWS a usar 1.000 threads para executar tarefas (cada um pequeno arquivo ou uma parte de uma cópia com várias partes) e analisar 100.000 tarefas:
Depois de executá-los, você pode usar o
sync
comando simples :ou
Em um sistema com CPU 4 núcleos e 16 GB de RAM, para casos como o meu (arquivos de 3 a 50 GB), a velocidade de sincronização / cópia passou de cerca de 9,5MiB / s para 700 + MiB / s, um aumento de 70x na velocidade da configuração padrão.
fonte
Use este comando com a CLI da AWS :
fonte
Outra opção que pode ajudar alguns usuários do OS X é o Transmit.
É um programa FTP que também permite que você se conecte aos seus arquivos S3. Além disso, possui uma opção para montar qualquer armazenamento FTP ou S3 como uma pasta no Finder, mas é apenas por um tempo limitado.
fonte
Desenvolvi um pouco de desenvolvimento para o S3 e não encontrei uma maneira simples de baixar um balde inteiro.
Se você deseja codificar em Java, é fácil usar o jets3t lib para criar uma lista de buckets e iterar sobre essa lista para fazer o download deles.
Primeiro, obtenha um conjunto de chaves privadas públicas no console de gerenciamento da AWS para poder criar um objeto S3service:
Em seguida, obtenha uma matriz de seus objetos de buckets:
Por fim, itere sobre essa matriz para baixar os objetos, um de cada vez, com:
Coloquei o código de conexão em um singleton threadsafe. A sintaxe de tentativa / captura necessária foi omitida por razões óbvias.
Se você preferir codificar em Python, use o Boto.
Depois de examinar o BucketExplorer, " Fazer o download do balde inteiro " pode fazer o que você deseja.
fonte
A API do AWS sdk é a melhor opção apenas para fazer upload de pastas inteiras e repo para s3 e baixar todo o bucket de s3 para localmente.
Para carregar a pasta inteira no s3
para baixar todo o balde s3 localmente
você também pode atribuir o caminho Como BucketName / Path para uma pasta específica no s3 para fazer o download
fonte
Você pode fazer isso com https://github.com/minio/mc :
O mc também suporta sessões, downloads recuperáveis, uploads e muito mais.
mc
suporta sistemas operacionais Linux, OS X e Windows. Escrito em Golang e lançado sob a versão 2.0 do Apache.fonte
Se você usa o Firefox com S3Fox, isso permite que você selecione todos os arquivos (selecione Shift primeiro e último) e clique com o botão direito do mouse e faça o download de todos ... Eu fiz isso com mais de 500 arquivos sem problemas
fonte
No Windows, minha ferramenta GUI preferida para isso é o Cloudberry Explorer for S3., Http://www.cloudberrylab.com/free-amazon-s3-explorer-cloudfront-IAM.aspx . Possui um explorador de arquivos bastante polido, interface parecida com ftp.
fonte
Se você tiver apenas arquivos lá (sem subdiretórios), uma solução rápida é selecionar todos os arquivos (
click
no primeiro eShift+click
no último) e pressionarEnter
ouright click
e selecionarOpen
. Para a maioria dos arquivos de dados, eles serão baixados diretamente no seu computador.fonte
Para adicionar outra opção da GUI, usamos a funcionalidade S3 do WinSCP . É muito fácil conectar, exigindo apenas sua chave de acesso e chave secreta na interface do usuário. Em seguida, você pode procurar e fazer o download dos arquivos necessários a partir de todos os buckets acessíveis, incluindo downloads recursivos de pastas aninhadas.
Como pode ser um desafio limpar um novo software com segurança e o WinSCP é bastante prevalente, pode ser realmente benéfico usá-lo em vez de tentar instalar um utilitário mais especializado.
fonte
O usuário do Windows precisa baixar o S3EXPLORER a partir deste link, que também possui instruções de instalação: - http://s3browser.com/download.aspx
Em seguida, forneça as credenciais da AWS, como chave de acesso, chave de acesso e região ao s3explorer, este link contém instruções de configuração para o s3explorer: Copiar link de colar no navegador: s3browser.com/s3browser-first-run.aspx
Agora todos os seus baldes s3 seriam visíveis no painel esquerdo do s3explorer.
Simplesmente selecione o balde e clique no menu Baldes no canto superior esquerdo e selecione a opção Download de todos os arquivos no menu. Abaixo está a captura de tela do mesmo:
Tela Seleção de caçamba
Em seguida, procure uma pasta para baixar o balde em um local específico
Clique em OK e seu download começará.
fonte
O aws sync é a solução perfeita. Ele não funciona em dois sentidos. É um caminho de origem e destino. Além disso, se você tiver muitos itens no bucket, será uma boa ideia criar o endpoint s3 primeiro para que o download aconteça mais rapidamente (porque o download não ocorre via Internet, mas via intranet) e sem custos
fonte
Aqui estão algumas coisas para baixar todos os buckets, listá-los e listar seu conteúdo.
/ ---------------------------- Métodos de extensão ------------------- ------------------ /
}
fonte
Você pode obtê-lo com o comando s3cmd :
fonte
Como Neel Bhaat explicou neste blog , existem muitas ferramentas diferentes que podem ser usadas para esse fim. Alguns são fornecidos pela AWS, sendo a maioria ferramentas de terceiros. Todas essas ferramentas exigem que você salve a chave e o segredo da sua conta da AWS na própria ferramenta. Seja muito cauteloso ao usar ferramentas de terceiros, pois as credenciais que você salva podem custar todo o seu valor e deixá-lo morto.
Portanto, eu sempre recomendo usar a CLI da AWS para essa finalidade. Você pode simplesmente instalar isso a partir deste link . Em seguida, execute o seguinte comando e salve seus valores secretos de chave na AWS CLI.
E use o comando a seguir para sincronizar seu AWS S3 Bucket com sua máquina local. (A máquina local deve ter a AWS CLI instalada)
Exemplos:
1) Para o AWS S3 no armazenamento local
2) Do armazenamento local para o AWS S3
3) Do AWS s3 bucket para outro bucket
fonte
Se você deseja apenas baixar o bucket da AWS, primeiro instale a CLI da AWS em sua máquina. No terminal, altere o diretório para onde deseja baixar os arquivos e execute este comando.
Se você também deseja sincronizar os diretórios local e s3 (caso tenha adicionado alguns arquivos na pasta local), execute este comando:
fonte
A AWS CLI é a melhor opção para baixar localmente um bucket S3 inteiro.
Instale a CLI da AWS.
Configure a CLI da AWS para usar credenciais de segurança padrão e Região da AWS padrão.
Para baixar todo o bucket S3, use o comando
aws s3 sync s3: // nome_do_bucket_caminho local
Referência para usar o AWS cli para diferentes serviços da AWS: https://docs.aws.amazon.com/cli/latest/reference/
fonte
Você pode usar este comando cli da AWS para baixar todo o conteúdo do bucket do S3 para a pasta local
Se você vir um erro como este
--no-verifica-ssl (booleano)
Por padrão, a CLI da AWS usa SSL ao se comunicar com os serviços da AWS. Para cada conexão SSL, a AWS CLI verificará os certificados SSL. Esta opção substitui o comportamento padrão da verificação de certificados SSL. referência
Use esta tag com o comando --no-confirm-ssl
fonte
s3 sync
é coberto acima várias vezes já. + Sugerir um uso--no-verify-ssl
sem explicar suas conseqüências de segurança é um crime.Se o bucket for muito grande, existe um comando chamado
s4cmd
que faz conexões paralelas e melhora o tempo de download:Para instalá-lo no Debian como
Se você tem pip:
Ele lerá o
~/.s3cfg
arquivo se presente (se não for instalars3cmd
e executars3cmd --configure
) ou você pode especificar--access-key=ACCESS_KEY --secret-key=SECRET_KEY
no comando.O cli é semelhante a
s3cmd
. No seu caso, async
é recomendado, pois você pode cancelar o download e iniciá-lo novamente sem precisar baixar novamente os arquivos.Tenha cuidado se você baixar muitos dados (> 1 TB), pois isso pode afetar sua fatura. Calcule primeiro qual será o custo
fonte
Como o @layke disse, é a melhor prática fazer o download do arquivo do S3 CLI, é um sistema seguro. Mas em alguns casos, as pessoas precisam usar o wget para baixar o arquivo e aqui está a solução
Isso indicará uma URL pública temporária, que você poderá usar para baixar o conteúdo do S3 usando o presign_url, no seu caso usando o wget ou qualquer outro cliente de download.
fonte
Tente este comando:
aws s3 sync yourBucketnameDirectory yourLocalDirectory
Por exemplo, se o nome do seu depósito for
myBucket
e o diretório local forc:\local
, então:aws s3 sync s3://myBucket c:\local
Para mais informações sobre o awscli, verifique esta instalação do aws cli
fonte