[REDIS] 나는 루비 다이제스트 :: SHA1 인스턴스 객체를 직렬화 할 수 있나요?
REDIS나는 루비 다이제스트 :: SHA1 인스턴스 객체를 직렬화 할 수 있나요?
G'day 사람들,
나는 백업 저장소로 레디 스 루비 (시나)의 존재 사용자 정의 파일 업로드 서비스를 재 구현하고있다.
고객 SHA1 해시를 계산하고, 업로드를 개시 완성까지 최대 64K 덩어리를 업로드
섬기는 사람 파일 청크를 추가 전체 파일의 계산 SHA1 해시는 정확한 수신을 확인합니다
자, 내가 뭘 바라고하는 것은 사용 루비 (1.9.3) (오히려 말에 처음부터 전체 파일을 읽는 것보다) 각 청크에 대한 다이제스트 :: SHA1 << (갱신) 연산자이다. 【큰 파일> 1기가바이트].
불행하게도 다이제스트 :: SHA1 및 Marshal.dump는 호환되지 않습니다
1.9.3p125 :001 > require 'digest'
=> true
1.9.3p125 :002 > $digest = Digest::SHA1.new
=> #<Digest::SHA1: da39a3ee5e6b4b0d3255bfef95601890afd80709>
1.9.3p125 :003 > marshalled_digest = Marshal.dump($digest)
TypeError: no _dump_data is defined for class Digest::SHA1
from (irb):3:in `dump'
from (irb):3
from /Users/rhodry/.rvm/rubies/ruby-1.9.3-p125/bin/irb:16:in `<main>'
1.9.3p125 :004 >
사람이 방법에 어떤 아이디어가 있습니까 :
감사,
Prmme
업데이트 : 요점 : 2,280,705 구현 옵션 1 루비 FFI를 사용하여 - 희망은 다른 사람에게 유용합니다
해결법
-
==============================
1.당신이 생각 당신은 SHA1의 경우 64K 청크를 보낼 수 있나요? 이 더 체크섬 데이터가 될 것입니다,하지만 일이 잘못 어디로 갔는지 당신이 알고있는 것, 그리고 소화의 내부 상태를 저장 할 필요가 없을 것이다.
당신이 생각 당신은 SHA1의 경우 64K 청크를 보낼 수 있나요? 이 더 체크섬 데이터가 될 것입니다,하지만 일이 잘못 어디로 갔는지 당신이 알고있는 것, 그리고 소화의 내부 상태를 저장 할 필요가 없을 것이다.
from https://stackoverflow.com/questions/9883649/can-i-serialize-a-ruby-digestsha1-instance-object by cc-by-sa and MIT license
'REDIS' 카테고리의 다른 글
[REDIS] 레디 스 - 대량 삽입 및 카운터 (0) | 2020.01.25 |
---|---|
[REDIS] 레디 스 개념 : 메모리 또는 DB에서? (0) | 2020.01.25 |
[REDIS] 얼랑 및 레디 스 : 읽기 성능 (0) | 2020.01.25 |
[REDIS] 옴 / 레디 스에서 동적 필드를 설정 (0) | 2020.01.25 |
[REDIS] 사용 레디 스는 제한된 범위에서 고유 ID를 생성하는 (0) | 2020.01.25 |