Opções de armazenamento em nuvem para downloads do cliente

1

Estou procurando uma maneira de distribuir arquivos de amostra para os clientes. O requisito é que seja (relativamente) simples fazer upload de arquivos, um link pode ser enviado para um cliente que pode baixar o arquivo com um navegador, o link do cliente não pode ser usado para encontrar outros arquivos

No momento, faço isso com o Dropbox e com scripts que criam uma pasta única de caixa de depósito e geram um link como link "em vez de gerenciar senhas

Não há necessidade de criptografar o conteúdo, os arquivos normalmente são < 1Gb e esperamos apenas alguns downloads por dia. Não queremos hospedá-lo em nosso site (não pergunte) e queremos um serviço que esteja por perto por algum tempo, mas os dados são armazenados localmente, então a redundância 9-9s não é um problema

    
por Martin Beckett 02.11.2011 / 20:33

2 respostas

2

Eu fornecerei uma resposta do S3, já que é uma das suas tags. O S3 da Amazon permite que você defina permissões em arquivos e crie um URL assinado com um tempo de expiração. Usando essas duas ideias juntas, é possível criar um sistema que funcione como um URL de uso único. Além disso, o S3 tem dois níveis de armazenamento, portanto, se a redundância não é um fator importante para você, é possível economizar um pouco usando o armazenamento de redundância reduzida. Como com todos os serviços da AWS, você terá que pagar pela largura de banda usada. O S3 também cobra uma taxa por solicitação para seus arquivos.

Diferentemente da implementação típica do S3, em que as permissões de arquivo estão definidas como públicas, você definirá as permissões como particulares e assinará com sua chave de acesso para conceder acesso.

Se você não se importa se seus clientes compartilham o link com outras pessoas ou fazem o download várias vezes (contanto que eles não possam acessar nenhum outro arquivo), então a implementação é bem simples, você só precisa criar um futuro (razoavelmente distante) expira a data com o URL assinado. Então, por exemplo, você envia seu arquivo para o S3 (ele é privado por padrão); crie um URL assinado com uma expiração de uma semana; e seu cliente, na próxima semana, pode acessar o arquivo usando o URL fornecido, quantas vezes quiser. Eles não podem acessar nenhum outro arquivo, pois não têm URLs assinadas - e todos os arquivos são privados.

O problema com o cenário acima é de tempo - você não quer manter um URL disponível por muito tempo, mas precisa dar tempo suficiente para que seu cliente acesse o arquivo - também é necessário algum esforço para validar que seu cliente visualizou o arquivo (isto é, você ligaria o S3 e verificaria seus logs).

O cenário alternativo requer uma implementação parcial em seu site, em vez de depender totalmente do S3. Crie uma página que aceite um ID único (armazenado em um banco de dados) e envie ao seu cliente um link para sua página, incluindo esse ID. Quando seu cliente acessa a página, você gera um URL S3 assinado que expira no futuro próximo (30s). (Ao mesmo tempo, você pode logar que o ID não é mais válido e que seu cliente acessou o arquivo). Inicie o download usando o URL gerado. Desta forma, os clientes só podem usar o URL uma vez - eles não podem disponibilizá-lo para outros (embora possam sempre disponibilizar o arquivo para outra pessoa), eles podem usar o link que você envia por email a qualquer momento (desde que haja não há expiração disso), e como você está usando URLs assinadas, elas não podem acessar nenhum outro arquivo (mesmo que adivinhem os caminhos / nomes de arquivos).

    
por 02.11.2011 / 22:04
0

Para algo mais adequado para usuários não técnicos, uso o link .

É grátis para arquivos de até 50MB e é muito fácil para qualquer um usar.

    
por 03.11.2011 / 15:06