Use Msgpack module in Bigfile plugin

This commit is contained in:
shortcutme 2019-03-16 02:14:08 +01:00
parent 28ffb3fd18
commit b46ee0c495
No known key found for this signature in database
GPG key ID: 5B63BAE6CB9613AE

View file

@ -5,6 +5,7 @@ import shutil
import collections import collections
import math import math
import warnings import warnings
import base64
import gevent import gevent
import gevent.lock import gevent.lock
@ -17,6 +18,7 @@ with warnings.catch_warnings():
import merkletools import merkletools
from util import helper from util import helper
from util import Msgpack
import util import util
from .BigfilePiecefield import BigfilePiecefield, BigfilePiecefieldPacked from .BigfilePiecefield import BigfilePiecefield, BigfilePiecefieldPacked
@ -70,7 +72,7 @@ class UiRequestPlugin(object):
else: # Big file else: # Big file
file_name = helper.getFilename(inner_path) file_name = helper.getFilename(inner_path)
msgpack.pack({file_name: piecemap_info}, site.storage.open(upload_info["piecemap"], "wb")) site.storage.open(upload_info["piecemap"], "wb").write(Msgpack.pack({file_name: piecemap_info}))
# Find piecemap and file relative path to content.json # Find piecemap and file relative path to content.json
file_info = site.content_manager.getFileInfo(inner_path, new_file=True) file_info = site.content_manager.getFileInfo(inner_path, new_file=True)
@ -303,7 +305,7 @@ class ContentManagerPlugin(object):
piecemap_relative_path = file_relative_path + ".piecemap.msgpack" piecemap_relative_path = file_relative_path + ".piecemap.msgpack"
piecemap_inner_path = inner_path + ".piecemap.msgpack" piecemap_inner_path = inner_path + ".piecemap.msgpack"
msgpack.pack({file_name: piecemap_info}, self.site.storage.open(piecemap_inner_path, "wb")) self.site.storage.open(piecemap_inner_path, "wb").write(Msgpack.pack({file_name: piecemap_info}))
back.update(super(ContentManagerPlugin, self).hashFile(dir_inner_path, piecemap_relative_path, optional=True)) back.update(super(ContentManagerPlugin, self).hashFile(dir_inner_path, piecemap_relative_path, optional=True))
@ -321,7 +323,7 @@ class ContentManagerPlugin(object):
file_info = self.site.content_manager.getFileInfo(inner_path) file_info = self.site.content_manager.getFileInfo(inner_path)
piecemap_inner_path = helper.getDirname(file_info["content_inner_path"]) + file_info["piecemap"] piecemap_inner_path = helper.getDirname(file_info["content_inner_path"]) + file_info["piecemap"]
self.site.needFile(piecemap_inner_path, priority=20) self.site.needFile(piecemap_inner_path, priority=20)
piecemap = msgpack.unpack(self.site.storage.open(piecemap_inner_path))[helper.getFilename(inner_path)] piecemap = Msgpack.unpack(self.site.storage.open(piecemap_inner_path).read())[helper.getFilename(inner_path)]
piecemap["piece_size"] = file_info["piece_size"] piecemap["piece_size"] = file_info["piece_size"]
return piecemap return piecemap