这在我的本地部署上运行良好,但在云部署上却不能。
with open(file_path, "wb+") as fp:
for chunk in file:
fp.write(chunk)
result = upload.delay(name, file_path)
在另一个文件中:
@shared_task
def upload(name, file_path):
path = Path(path_tmp)
if os.path.isfile(path):
do something
错误是
不是一个路径/mediafiles/rawfiles/file.png"FileNotFoundError: [Errno 2] No such file or directory
当我在docker导航到->/mediafiles/rawfiles
,文件在那里并且有一个大小
我正在使用DRF ->芹菜→Django .
谁能帮助为什么云部署无法找到文件?
当您使用@shared_task
将任务委托给celery worker并尝试访问文件系统时,它会尝试在工作机器上获取该文件。因此,您需要在具有文件的机器上执行此任务,或者将目标文件复制到工作机器。
我添加workdir启动cmd,然后运行良好。
celery -A tasks --workdir=. worker ...
希望对你有帮助。