Método para evitar nomes de arquivos duplicados ao fazer upload de arquivos: UUID

1. O que é UUID

UUID (Universally Unique Identifier) ​​​​é um identificador globalmente exclusivo de 128 bits. É composto por um conjunto de números e letras, expressos em hexadecimal, e tem probabilidade teoricamente muito baixa de repetição. O algoritmo de geração UUID garante que os identificadores gerados em diferentes sistemas, diferentes tempos e diferentes espaços sejam quase impossíveis de entrar em conflito, podendo ser amplamente utilizado em sistemas distribuídos e aplicações de grande escala.

O formato padrão do UUID é: xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx

Dentre eles, cada x representa um número hexadecimal (0-9 e af), e M e N representam bits de identificação específicos.

  • Bits 1-12: timestamp de 32 bits, registrando o horário em que o UUID foi gerado, em 100 nanossegundos.
  • Bits 13-16: número aleatório de 16 bits, registrando o contador que gerou o UUID.
  • Bits 17-20: Identifica a versão gerada do UUID. Existem atualmente 5 versões, sendo a mais comum a versão 4, que representa um UUID gerado por um número aleatório.
  • Bits 21-24: Identifica a variante do UUID. Atualmente existem apenas duas variações, geralmente "10".
2. Como usar o UUID

Java fornece uma classe para gerar UUID java.util.UUID. Você pode usar esta classe para gerar UUID. UUIDA classe fornece dois métodos estáticos para gerar UUID:

  1. UUID.randomUUID(): Gere um UUID aleatório, usando a versão 4, que é um UUID baseado em números aleatórios.

  2. UUID.nameUUIDFromBytes(byte[] name): Gere um UUID com base na matriz de bytes especificada. Este método converte a matriz de bytes em um valor hash MD5 e o utiliza como base para gerar um UUID, usando a versão 3.

 Conforme mostrado, estou usando UUID.randomUUID()来生成随机ID,因为Java, UUID.randomUUID()o método retorna um java.util.UUIDobjeto, então o objeto 使用toString()方法é UUIDconvertido em uma representação de string padrão. Isso irá gerar um nome de arquivo exclusivo e aleatório para o arquivo enviado.

おすすめ

転載: blog.csdn.net/LuoluoluoluoYan/article/details/132093510