Menu Docs
Página inicial do Docs
/ /
Serviços Atlas App
/ /

Migrar para seu próprio bucket S3

Nesta página

  • Migrar para S3
  • Criar um bucket S3
  • Migrar dados existentes
  • Atualizar código do aplicativo
  • Encerrar a hospedagem do Atlas App Services
  • Acessar o bucket S3 a partir do Atlas Functions
  • Integrar com Atlas Functions
  • Funções de gravação para acessar um bucket S3

Importante

Consulte sempre a documentação oficial do MongoDB Atlas e da Amazon Web Services para obter as informações mais atualizadas e precisas. As etapas específicas podem variar dependendo dos detalhes do seu projeto e das tecnologias utilizadas.

Se você estiver usando apenas o serviço de hospedagem estática do MongoDB Atlas como um armazenamento de blobs para conteúdo estático e não estiver hospedando um aplicativo cliente, siga as etapas abaixo para migrar da hospedagem do Atlas para o uso de seu próprio bucket S3 .

1

Configure seu próprio bucket S3 em sua conta da Amazon Web Services, se ainda não o tiver feito. Configure as configurações do bucket de acordo com seus requisitos, incluindo permissões de acesso e opções de criptografia.

2

Migre seus dados existentes da hospedagem do MongoDB Atlas para seu contêiner S3 . Dependendo da quantidade de dados e de seus requisitos específicos, isso pode envolver a exportação de dados do MongoDB com a App Services CLI (appservices pull --include-hosting) e o upload dos dados para o S3 usando ferramentas como a Amazon Web Services CLI ou Amazon Web Services SDK.

3

Modifique o código do seu aplicativo para interagir com o bucket S3 em vez do MongoDB Atlas Hosting. Isso inclui a atualização do código que lida com carregamentos ou downloads de arquivos, se você estiver usando os comandos do App Services CLI para fazer isso.

4

Depois de verificar se a implantação bem-sucedida dos seus arquivos no bucket S3 , exclua os arquivos hospedados do aplicativo Atlas App Services. Lembre-se de que a hospedagem de domínios no Atlas App Services não será mais executada a partir de 12 de março de 2025.

Você pode acessar o conteúdo estático armazenado em seu bucket S3 a partir do Atlas Functions. Para fazer isso, você precisa:

  1. Integrar com Atlas Functions

  2. Funções de gravação para acessar um bucket S3

Importante

Testar e validar

Teste suas Atlas Functions para garantir que elas possam acessar e manipular objetos com êxito no bucket S3 . Valide que as funções se comportam conforme o esperado e lidam com erros normalmente.

Faça o upload para S3 usando a dependência externa @aws-sdk . O Atlas App Services transpila automaticamente as dependências e também oferece suporte à maioria dos módulos Node.js padrão.

Para importar e usar uma dependência externa, primeiro você precisa adicionar a dependência ao seu aplicativo. Você pode adicionar pacotes por nome ou enviar um diretório de dependências.

Importante

Suporte ao SDK do Amazon Web Services

Atlas App Services ainda não é compatível com a versão 3 do Amazon Web Services SDK. Use a versão 2 do SDK ao especificar o módulo npm

Escreva funções do MongoDB Atlas que interagem com seu bucket S3 . Essas funções podem executar várias operações, como upload de arquivos, download de arquivos, listar objetos e excluir objetos do bucket S3 .

Veremos alguns exemplos básicos neste guia. Talvez você queira explorar outras maneiras de interagir com seu3 bucket S visualizando a lista completa de comandos do cliente para o @aws-sdk/client-s3.

Para autenticar solicitações Amazon Web Services, armazene seu ID de chave de acesso e chave de acesso secreta como valores. Em seguida, você pode acessá-los dentro de funções e passá-los para o SDK.

exports = async function() {
// require calls must be in exports function
const { S3Client, PutObjectCommand, GetObjectCommand } = require("@aws-sdk/client-s3");
const s3Client = new S3Client({
region: "us-east-1", // replace with your AWS region
credentials: {
accessKeyId: context.values.get("awsAccessKeyId"),
secretAccessKey: context.values.get("awsSecretAccessKey"),
},
});
const putCommand = new PutObjectCommand({
Bucket: "bucketName",
Key: "keyName",
Body: EJSON.stringify({ hello: "world" }),
});
const putResult = await s3Client.send(putCommand);
const getCommand = new GetObjectCommand({
Bucket: "bucketName",
Key: "keyName",
});
const getResult = await s3Client.send(getCommand);
}

Buscar ativos estáticos e carregá-los em S3 fazendo o download de ativos estáticos a partir da URL ou carregá-los como arquivos locais.

Para carregar o conteúdo baixado para S3, use uma biblioteca HTTP ou módulos Node.js integrados, como http ou https , para baixar o ativo estático a partir da URL. Você pode então fazer upload do conteúdo baixado para S3.

Aqui está um exemplo de baixar um ativo utilizando a biblioteca axios :

const axios = require('axios');
const stream = require('stream');
const { promisify } = require('util');
// Promisify pipeline function to pipe streams
const pipeline = promisify(stream.pipeline);
async function uploadAssetToS3() {
try {
const response = await axios.get('URL_OF_YOUR_STATIC_ASSET', { responseType: 'stream' });
const uploadParams = {
Bucket: 'YOUR_BUCKET_NAME',
Key: 'YOUR_OBJECT_KEY',
Body: response.data
};
// Upload the static asset to S3
await s3.upload(uploadParams).promise();
console.log('Static asset uploaded successfully');
} catch (error) {
console.error('Error uploading static asset:', error);
}
}
uploadAssetToS3();

Para carregar um ativo local para S3, use o seguinte trecho de código:

const uploadParams = {
Bucket: 'YOUR_BUCKET_NAME',
// Specify the name/key for the object in the bucket (usually the file name)
Key: 'YOUR_OBJECT_KEY',
// Provide the local file to be uploaded
Body: 'STATIC_ASSET_CONTENT',
};
// Upload the static asset to S3
s3.upload(uploadParams, (err, data) => {
if (err) {
console.error('Error uploading static asset:', err);
} else {
console.log('Static asset uploaded successfully:', data.Location);
}
});

Voltar

Migrar para renderização