gpt4 book ai didi

python - Pickle 拒绝使用 celery 报告 ContentDisallowed : Refusing to deserialize untrusted content of type pickle 来序列化内容

转载 作者:太空狗 更新时间:2023-10-29 17:25:52 25 4
gpt4 key购买 nike

我正在尝试将一些 python 对象主要是 json 可序列化,除了 datetime.datetime 放在 rabbitmq 队列中,因此使用 pickle 进行序列化。

celery_config 文件:

CELERY_TASK_SERIALIZER = 'pickle'
CELERY_RESULT_SERIALIZER = 'pickle'

它抛出一个异常说:

 File "/usr/local/lib/python2.7/dist-packages/kombu/serialization.py", line 174, in loads
raise self._for_untrusted_content(content_type, 'untrusted')
ContentDisallowed: Refusing to deserialize untrusted content of type pickle (application/x-python-serialize)

This link建议我进行消息签名,对此我一无所知。

有人可以指导我如何解决吗?

最佳答案

你试过吗,这个:

CELERY_ACCEPT_CONTENT = ['pickle']

如此链接所示 ( http://docs.celeryproject.org/en/latest/userguide/configuration.html#std:setting-accept_content )此设置接受序列化程序名称和内容类型的列表,因此您可以将序列化程序或您希望序列化的内容类型列入白名单。

因此,要么执行上述操作,要么使用 SSL 消息签名……这基本上是构建一个 ssh key 对,并使 celery 能够使用您的 key 来获得安全连接。

您可以通过以下方式注册您的“KEY”和“CERTIFICATE”来激活消息签名:

CELERY_SECURITY_KEY = '/etc/ssl/private/worker.key'
CELERY_SECURITY_CERTIFICATE = '/etc/ssl/certs/worker.pem'
CELERY_SECURITY_CERT_STORE = '/etc/ssl/certs/*.pem'
from celery.security import setup_security
setup_security()

至于这些东西的含义……以及它是如何工作的,请参阅: http://www.tldp.org/HOWTO/SSL-Certificates-HOWTO/x64.html

此外,关于如何生成 key (以及启用安全的无密码登录),请参阅: https://help.github.com/articles/generating-ssh-keys/http://mah.everybody.org/docs/ssh以获得其中引用的更一般的链接。

关于python - Pickle 拒绝使用 celery 报告 ContentDisallowed : Refusing to deserialize untrusted content of type pickle 来序列化内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27578235/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com