You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 08:23:09