Usando o DigitalOcean Spaces ou a Amazon S3 para armazenamento de arquivos no XF 2.1+

Usando o DigitalOcean Spaces ou a Amazon S3 para armazenamento de arquivos no XF 2.1+ 2.4.1

No permission to download
Descrição curta
Setting up DigitalOcean Spaces for XenForo 2.1+ video uploads simplifies remote file storage, ensuring smooth integration with Flysystem. This guide walks you through setting up DigitalOcean Spaces and configuring XF to use it, including creating API credentials and adjusting XF's config.php for optimal performance. For those preferring Amazon S3, the process is similar but skips DigitalOcean Spaces setup.
Compatibilidade da Versão XenForoA download é compatível apenas com o XenForo 2.1 e versões superiores.Por que este guia?Desde a 2.0.0 do XenForo nós temos suportado armazenamento de arquivos remotos usando umabstracted file system named Flysystem. É chamado de sistema de arquivos abstrato pois adiciona uma camada de abstração entre o código e um sistema de arquivos. Isso significa que ele fornece uma API consistente para realizar operações de sistema de arquivos, de forma que, independentemente do tipo de sistema de arquivos (local baseado em disco ou distribuído e acessível remotamente), nosso código chama as mesmas funções e o Flysystem cuida do resto.

Como é útil, não é a coisa mais óbvia ou direta para configurar, então este guia e seu complemento ajudarão.

Assim, se você planeja utilizar ovideo uploads functionem XF 2.1 ou superior e você está preocupado com as demandas aumentadas de espaço em disco isso ajudaráFornecendo os arquivos necessários disponíveisEmbora seja possível para você baixar os arquivos e configurar coisas como o loader automático por si mesmo, você provavelmente prefere simplesmente baixar o addon que está anexado a este recurso. Você podeinstall the add-on in the usual fashion.Antes de começarSe você estiver configurando isso em um site existente, será necessário mover os arquivos existentes manualmente. Há uma seção sobre isso no final. Enquanto você está movendo os arquivos existentes, configurando e testando, recomendamos fechar o fórum primeiro.Configurando DigitalOcean SpacesNós faremos isso primeiro, pois é a mais simples de configurar. Se você preferir usar o Amazon S3, pule para o próximo passo.Configurando Amazon S3seção abaixo.
[vá para oDigitalOcean Cloudpágina e inscreva-se ou faça login.[*]Nesse ponto, se você é novo na DigitalOcean, pode precisar configurar o pagamento.[você será capaz de criar um novo projeto.[*clicke no link "Iniciar com Espaços"
Agora que o espaço está criado, você deve ter um URL de destino, similar a:https://xftest.ams3.digitaloceanspaces.comNote isso para depois.

Agora precisamos criar alguns credenciais de API. Para isso:

Isso te dará uma chave e um segredo. Anote-os.Configurando XF para usar DigitalOcean Spaces$s3 = function()use(\Aws\S3\S3Client){
return new \Aws\S3\S3Client([credenciais[key' => 'ABC',
'secret' => '123',
'region' => 'ams3',
'version' => 'latest',
'endpoint' =>https://ams3.digitaloceanspaces.comconfig[fsAdapters['data'] = function() use($s3) {
return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
};
Finalmente, precisamos garantir que URLs de avatar e thumbnails de anexo sejam pré-pendidas com o URL correto. Isso requer a URL do endpoint que você notou anteriormente, novamente:
$config[externalDataUrl'] = function($externalPath, $canonical)
{
returnhttps://xftest.ams3.digitaloceanspaces.com/data/' . $externalPath;
};
At this point, everything should be working in terms of new uploads. Don't be alarmed if you notice that avatars and thumbnails are missing; if you have existing files, they will need to be moved over manually which we'll go through later.

First, we need to test that the configuration works. Simply go and upload a new avatar. The avatar will now be stored and served remotely!

If you check your DigitalOcean Spaces account now, you should see that new folders have been created containing your new avatar:
187981
Sucesso! Mas ainda estamos apenas metade do caminho!

Agora precisamos adicionar suporte para o diretório internal_data também. Geralmente, isso são anexos e qualquer coisa que deva ser "privada". Retornando ao config.php e a parte de código para adicionar é muito semelhante:
PHP:
$config['fsAdapters']['internal-data'] = function() use($s3)
{
return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
};
Tente agora enviar um anexo para uma publicação e, como antes, você deve ver arquivos e pastas adicionais no seu navegador de arquivos do Spaces. ?
Configurando o Amazon S3[*]Vá para oAWS Management Consolepágina e inscreva-se ou faça login.[]*Noção de serviço "AWS serviços", digite "S3" para ir ao console "S3".[*Clique em "Criar pasta".*Para configurar as permissões, clique na aba "Adicionar políticas existentes" e depois no botão "Criar política".[*]IAM e as diversas políticas e permissões podem ser um pouco intimidantes. Podemos torná-lo um pouco mais fácil, embora você possa ter requisitos diferentes. Nessa página, existe uma aba chamada "JSON". Cole o seguinte nela, substituindo YOUR-BUCKET-NAME pelo nome do nome da caixa que escolheu anteriormente:[/list]
Versão[Acessar["s3:ListBucket",
"s3:GetObject",
"s3:GetObjectAcl",
"s3😛utObject",
"s3😛utObjectAcl",
"s3:ReplicateObject",
"s3😀eleteObject"
],["arn:aws:s3:::SEU-BAKET-NOME",
"arn:aws:s3:::SEU-BAKET-NOME/*"
]

  1. Isso te dará uma chave e um segredo. Anote-os.Configurando XF para usar o Amazon S3$s3 = function() { return new \Aws\S3\S3Client([credenciais[key' => 'ABC',
    'secret' => '123',
    'region' => 'eu-west-2',
    'version' => 'latest',
    'endpoint' =>https://s3.eu-west-2.amazonaws.comconfig(['driver' => 's3',
    'secret_key' => $key,
    'version_control' => false,
    'region' => '<inferred_region>',
    ]);['data'] = function() use($s3) {
    return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'data');
    };
    Finally, we need to ensure that avatar and attachment thumbnail URLs are prepended with the correct URL:
    $config[externalDataUrl'] = function($externalPath, $canonical)
    {
    returnhttps://xftest.s3.eu-west-2.amazonaws.com/data/' . $externalPath;
    };
    At this point, everything should be working in terms of new uploads. Don't be alarmed if you notice that avatars and thumbnails are missing; if you have existing files, they will need to be moved over manually which we'll go through later.

    First, we need to test that the configuration works. Simply go and upload a new avatar. The avatar will now be stored and served remotely!

    If you check your bucket file browser now, you should see that new folders have been created containing your new avatar:
    187995
    Sucesso! Mas só chegamos metade do caminho!

    Agora precisamos adicionar suporte para o diretório internal_data. Geralmente, isso são anexos e qualquer coisa que deva ser "privada". Retornando ao config.php e a parte de código para adicionar é muito semelhante:
    PHP:
    $config['fsAdapters']['internal-data'] = function() use($s3)
    {
    return new \League\Flysystem\AwsS3v3\AwsS3Adapter($s3(), 'xftest', 'internal_data');
    };
    Tente agora enviar um anexo para uma publicação e, como antes, você deve ver arquivos e pastas adicionais no seu navegador de ficheiros do bucket. ?Mover arquivos existentes para o Spaces ou Amazon S3

    Agora você tem arquivos hospedados remotamente. No mínimo, a partir deste ponto em diante. Mas o que fazer com todos os arquivos existentes?

    Felizmente há várias maneiras de interagir com o Spaces e S3 para tornar o processo de mover seu conteúdo existente muito facilmente. Embora isso seja uma operação um-a-vez, dependendo do número e da quantidade dos ficheiros, pode levar bastante tempo.

    Existem algumas maneiras de gerenciar este processo, mas provavelmente a melhor abordagem é usar um ferramenta chamadas3cmdinstruções populares para ferramentas de linha de comando que funcionam em plataformas cruzadas para gerenciar S3 e armazenamentos compatíveis com o S3.

    É possível instalar a ferramenta s3cmd em seu servidor e executar as instruções para copiar os arquivos para sua nova localização, independentemente de você estar usando Spaces ou S3.

    Em vez de reescrever algo que já foi escrito, deixarei você com o seguinte guia da DigitalOcean, que descreve como migrar seus arquivos existentes usando s3cmd.

    s3cmd 2.x Setup :: DigitalOcean Product Documentation

    s3cmd é um popular tool de linha de comando cross-platform para gerenciar armazenamentos compatíveis com S3 e S3. Para usar o s3cmd, você precisará: a versão 2.0.0+ ou superior do s3cmd. Você pode verificar sua versão usando s3cmd --version. Versões dos pacotes podem estar desatualizadas, então recomendamos usar o s3cmd...www.digitalocean.comNota:Quando copiar seus arquivos de dados existentes, eles serão necessários para serem feitos públicos. Você pode fazer isso definindo a ACL como público enquanto copiar:

    Examples of s3cmd 2.x Usage with DigitalOcean Spaces :: DigitalOcean Documentation

    exemplos de comandos s3cmd para ações comuns com Spaces, como upload e gerenciamento de arquivos, configuração de permissões e criptografia.www.digitalocean.com
Author
axtona
Views
594
Extension type
zip
File size
712,4 KB
First release
Last update
Ratings 0,00 star(s) 0 ratings
Link quebrado? Send message para a equipe NP que vamos ajudá-lo rapidamente!
Apoie o desenvolvedor Se você está satisfeito com o teste ou seu projeto gerou lucro, clique no botão “Mais informações” para apoiar o desenvolvedor comprando.

Latest updates

  1. 2.4.1 - changelog
    Due to an issue, we are releasing a new version of the add-on to support customers running XenForo 2.2 and older versions of PHP. This is the...
  2. 2.4.0 - changelog
    This "add-on" is no longer required for XenForo 2.3 and should be uninstalled XenForo 2.3 ships with a subset of the Amazon S3 SDK for PHP. This...
  3. V2.3.0 - V2.3.0
    This update is a very minor maintenance release. As well as including the latest version of the Amazon AWS SDK (3.231.7) this is now a much...

More resources from axtona

Using Composer Packages A
XenForo v2 uses Composer behind the scenes to include certain packages used by the core software
Eggy SEO Autopilot A
Automated auditing, metadata, structured data, Google Search Console, IndexNow
Cool Timeline Pro - WordPress Timeline Plugin A
an advanced WordPress timeline plugin that showcases your life history timeline

Similar resources

 amazon parser A
Adiciona ID de afiliado do Amazon aos links no mensagem
 analisador amazon all A
Adiciona ID de afiliado do Amazon a todos os links em todas as mensagens.
Back
Top