基于PyFuse实现带加密压缩的透明文件系统时遇“fuse: wrote too many bytes”错误的问题求助
基于PyFuse实现带加密压缩的透明文件系统时遇“fuse: wrote too many bytes”错误的问题求助
我正在尝试用FUSE实现一个简单的透明加密文件系统,目前是基于一个Python的透传文件系统示例来改造的,原代码运行完全正常。我想给它加上加密(后续还会添加压缩)的功能,目前已经写了AES的加密解密函数,但修改read和write方法后,一直遇到fuse: wrote too many bytes的错误,现在连加密文件的正常写入都做不到,还没到添加压缩的步骤就卡壳了。
目前我写的加密解密代码如下:
from Crypto.Cipher import AES from Crypto.Util.Padding import pad, unpad AES_KEY = b"thisisaverysecretkey1234" AES_IV = b"thisisaverysecre" def encrypt_data(self, data): cipher = AES.new(AES_KEY, AES.MODE_CBC, AES_IV) return cipher.encrypt(pad(data, AES.block_size)) def decrypt_data(self, data): cipher = AES.new(AES_KEY, AES.MODE_CBC, AES_IV) return unpad(cipher.decrypt(data), AES.block_size)
然后我修改了文件系统的read和write方法,代码如下:
def read(self, path, size, offset, fh): full_path = self._get_file_path(path) os.lseek(fh, offset, os.SEEK_SET) encrypted_data = os.read(fh, size) # 解密后再返回数据 return decrypt_data(encrypted_data) def write(self, path, buf, offset, fh): full_path = self._get_file_path(path) os.lseek(fh, offset, os.SEEK_SET) # 加密后再写入 encrypted_data = self._encrypt_data(buf) return os.write(encrypted_data)
修改之后,运行时就会报错:
fuse: wrote too many bytes
想请教各位,这个问题出在哪里,我该怎么修改才能让加密写入和读取正常工作?
备注:内容来源于stack exchange,提问作者lee
相关产品推荐
相关产品推荐

