rails helper дать файлу загрузки уникальное имя? - PullRequest
1 голос
/ 20 декабря 2010

Эй, ребята Сейчас я работаю над проектом, который требует загрузки большого количества видео. Есть ли у rails этот помощник, способный справиться с этим, например, адрес видео на YouTube:

www.youtube.com / смотреть? V = KYUhtPV_Lk4

Спасибо

Ответы [ 3 ]

3 голосов
/ 20 декабря 2010

Вы можете сгенерировать случайную строку, подобную этой, и использовать ее в качестве имени файла:

Digest::SHA1.hexdigest(Time.now.to_s) # => 800b262b59296b660a4f73e23580809143ed8846 
1 голос
/ 20 декабря 2010

вы используете activerecord для моделирования файлов или они просто плоские файлы где-то?

если у вас есть модель типа UploadedFile

irb(main):021:0> file_id = 1
=> 1
irb(main):022:0> Digest::SHA1.hexdigest('SomeRandomString' + file_id.to_s)
=> "70f5eedc8d4f02fd8f5d4e09ca8925c2f8d6b942"

если вы просто храните их как простые файлы в системе, вы можете хэшировать их путь + имя файла, чтобы создать уникальную строку.

irb(main):016:0> Digest::SHA1.hexdigest '/home/bob/somefile.mp4'
=> "204a038eddff90637c529af7003e77d600428271"

и вы всегда можете добавить временную метку текущего времени и случайное число, чтобы избежать дублирования.

0 голосов
/ 10 января 2012

SecureRandom.uuid генерирует случайный UUID v4 (универсальный уникальный идентификатор)

Не содержит значимых

информация, такая как MAC-адрес, время и т. Д. См. RFC 4122 для детали UUID.

SecureRandom::uuid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...