LINUX.ORG.RU

История изменений

Исправление user_id_68054, (текущая версия) :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это могло-бы создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги:
«msg/QkgqgPamrldQCffyVhT0» => «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

Исправление user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это могло-бы создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги: «msg/QkgqgPamrldQCffyVhT0» => «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

Исправление user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это могло-бы создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги: «msg/QkgqgPamrldQCffyVhT0» => «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

ну и кстате — странно что нет вот этого :) :

.replace('+','A').replace('/','A')

Исправление user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это могло-бы создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги: «msg/QkgqgPamrldQCffyVhT0» => «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

Исправление user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это могло-бы создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги: «msg/QkgqgPamrldQCffyVhT0»=>«msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

Исправление user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это можно создать дополнительную трудность, наверное..


а что если вместо

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','').replace('_','')[:20]

написать

def hsh(s):
    return base64.urlsafe_b64encode( hashlib.sha256(s).digest() ).replace('-','A').replace('_','A')[:20]

в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :) .. и это позволило бы проще разбивать этот файл на под-каталоги: «msg/QkgqgPamrldQCffyVhT0»=>«msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0»

Исходная версия user_id_68054, :

в общем, жду советов и предложений, пока буду это оформлять :)

вряд ли я смогу что-то особо дельное написать..

кроме как по поводу [api/__init__.py]:

def new_msg(obj,rh=None):
    s = jout(obj).encode('utf-8')
    h = rh or hsh(s)
    open('msg/%s' % h,'wb').write(s)
    return h

что будет когда закончатся файлы внутри каталога? ведь каталог может файлов хранить не бесконечно? или бесконечно?.. зависит от файловой системы.. но лично мне было бы страшно если файлов может стать больше чем 2^16 :-)

если бы вместо файла «msg/QkgqgPamrldQCffyVhT0» использовался бы файл «msg/Q/Qk/Qkg/QkgqgPamrldQCffyVhT0», то наверное это отчасти решило бы проблему..

но так как используется модификация-Base64 (без "-" и «_») а не Base58 — то значит код-сообщения может иметь переменную длинну, а не постоянную — это можно создать дополнительную трудность, наверное..

а что если вместо .replace('-', ")..replace('_', ") написать .replace('-', 'A').replace('_', 'A') ? в этом случае модификация-Base64 всегда будет выдавать одну и туже длинну :)