コード例 #1
0
ファイル: ftp.py プロジェクト: asmeurer/requests-ftp
    def nlst(self, path, request):
        '''Executes the FTP NLST command on the given path.'''
        data = StringIO()

        # Alias the close method.
        data.release_conn = data.close

        self.conn.cwd(path)
        code = self.conn.retrbinary('NLST', data_callback_factory(data))

        # When that call has finished executing, we'll have all our data.
        response = build_text_response(request, data, code)

        # Close the connection.
        self.conn.close()

        return response
コード例 #2
0
ファイル: ftp.py プロジェクト: asmeurer/requests-ftp
    def list(self, path, request):
        '''Executes the FTP LIST command on the given path.'''
        data = StringIO()

        # To ensure the StringIO gets cleaned up, we need to alias its close
        # method to the release_conn() method. This is a dirty hack, but there
        # you go.
        data.release_conn = data.close

        self.conn.cwd(path)
        code = self.conn.retrbinary('LIST', data_callback_factory(data))

        # When that call has finished executing, we'll have all our data.
        response = build_text_response(request, data, code)

        # Close the connection.
        self.conn.close()

        return response
コード例 #3
0
ファイル: ftp.py プロジェクト: dashea/requests-ftp
    def size(self, path, request):
        '''Executes the FTP SIZE command on the given path.'''
        self.conn.voidcmd('TYPE I')  # SIZE is not usually allowed in ASCII mode

        size = self.conn.size(path)

        if not str(size).isdigit():
            self.conn.close()
            return None

        data = StringIO(size)
        # To ensure the StringIO gets cleaned up, we need to alias its close
        # method to the release_conn() method. This is a dirty hack, but there
        # you go.
        data.release_conn = data.close

        response = build_text_response(request, data, '213')

        self.conn.close()

        return response