一段时间后,来自webapp的Paramiko sftp.open调用失败了

时间:2012-05-01 15:28:32

标签: django paramiko

我在django应用程序中使用paramiko将上传的文件移动到单独的资产服务器。这一切都运行良好一段时间(几个小时左右?)但随后它开始在sftp.open调用上产生EOFErrors。以下是生成的2个回溯:

storages/backends/sftpstorage.py in _read

        return self.sftp.open(remote_path, 'rb')

paramiko/sftp_client.py in open

        t, msg = self._request(CMD_OPEN, filename, imode, attrblock)

paramiko/sftp_client.py in _request

        num = self._async_request(type(None), t, *arg)

paramiko/sftp_client.py in _async_request

            self._lock.release()

paramiko/sftp.py in _send_packet

        self._write_all(out)

paramiko/sftp.py in _write_all

                raise EOFError()

django/db/models/fields/files.py in save

        self.name = self.storage.save(name, content)

django/core/files/storage.py in save

        name = self.get_available_name(name)

django/core/files/storage.py in get_available_name

        while self.exists(name):

generic/storage.py in exists

                    raise

storages/backends/sftpstorage.py in exists

            return False

paramiko/sftp_client.py in stat

        t, msg = self._request(CMD_STAT, path)

paramiko/sftp_client.py in _request

        num = self._async_request(type(None), t, *arg)

paramiko/sftp_client.py in _async_request

            self._lock.release()

paramiko/sftp.py in _send_packet

        self._write_all(out)

paramiko/sftp.py in _write_all

                raise EOFError()

因此,在更换照片时,以及仅保存项目时,这种情况都会发生,而照片保持不变。这是因为发出exists电话。

此外,我使用django-imagekit进行图像缩放,并使用django-storages的sftpstorage将文件存储在远程计算机上。

奇怪的是,这种方法有效一段时间,但随后停止工作。通过触摸wsgi文件重新启动mod_wsgi使其再次工作。可能是什么原因造成的?可能是某些ssh会话重用不起作用吗?

0 个答案:

没有答案