MEGA Python API调用import_public_file时file_key参数是什么?
file_key参数含义与报错解决方案
参数含义
MEGA采用端到端加密存储用户文件,所有文件的加密密钥不会上传至MEGA服务器,file_key就是共享链接中#后面的字符串,是对应共享文件的解密密钥,只有拿到该密钥才能解密获取共享文件的完整内容。
你给出的示例共享链接https://mega.nz/file/bgJ3yA5I#fmFDN9vJZnhHMBQPNheEsm72QBYskzSm6vmwGFcBPHo中,fmFDN9vJZnhHMBQPNheEsm72QBYskzSm6vmwGFcBPHo就是该文件的file_key。
报错原因
你使用的mega.py库的import_public_file方法不支持直接传入完整共享链接,需要手动拆分链接得到文件ID和file_key两个独立参数,分别传入方法。
修复后的代码
手动拆分参数调用
from mega import Mega mega = Mega() client = mega.login('email', 'password') folder = client.find('Folder')[0] # 从共享链接拆分得到的两个参数 public_file_id = 'bgJ3yA5I' file_key = 'fmFDN9vJZnhHMBQPNheEsm72QBYskzSm6vmwGFcBPHo' client.import_public_file(public_file_id, file_key, dest_node=folder)
自动解析链接工具函数
如果需要批量处理链接,可以加一个简单的解析函数自动拆分参数:
def parse_mega_public_link(link: str) -> tuple[str, str]: id_part, key_part = link.split('#') file_id = id_part.rsplit('/', 1)[-1] return file_id, key_part # 调用示例 file_id, file_key = parse_mega_public_link('https://mega.nz/file/bgJ3yA5I#fmFDN9vJZnhHMBQPNheEsm72QBYskzSm6vmwGFcBPHo') client.import_public_file(file_id, file_key, dest_node=folder)
内容的提问来源于stack exchange,提问作者HyperTech
相关产品推荐
相关产品推荐

