예제 #1
0
    def reader(self, iter_hook=None, keep_cache=False):
        """
        Return a :class:`swift.common.swob.Response` class compatible
        "`app_iter`" object as defined by
        :class:`swift.obj.diskfile.DiskFileReader`.

        For this implementation, the responsibility of closing the open file
        is passed to the :class:`swift.obj.diskfile.DiskFileReader` object.

        :param iter_hook: called when __iter__ returns a chunk
        :param keep_cache: caller's preference for keeping data read in the
                           OS buffer cache
        :returns: a :class:`swift.obj.diskfile.DiskFileReader` object
        """
        if self._metadata is None:
            raise DiskFileNotOpen()
        dr = DiskFileReader(self._fd,
                            self._threadpool,
                            self._mgr.disk_chunk_size,
                            self._obj_size,
                            self._mgr.keep_cache_size,
                            iter_hook=iter_hook,
                            keep_cache=keep_cache)
        # At this point the reader object is now responsible for closing
        # the file pointer.
        self._fd = None
        return dr
예제 #2
0
    def get_metadata(self):
        """
        Provide the metadata for an object as a dictionary.

        :returns: object's metadata dictionary
        """
        if self._metadata is None:
            raise DiskFileNotOpen()
        return self._metadata
예제 #3
0
    def get_metadata(self):
        """
        Provide the metadata for a previously opened object as a dictionary.

        :returns: object's metadata dictionary
        :raises DiskFileNotOpen: if the
            :func:`swift.obj.diskfile.DiskFile.open` method was not previously
            invoked
        """
        if self._metadata is None:
            raise DiskFileNotOpen()
        return self._metadata
예제 #4
0
    def __enter__(self):
        """
        Context enter.

        .. note::

            An implemenation shall raise `DiskFileNotOpen` when has not
            previously invoked the :func:`swift.obj.diskfile.DiskFile.open`
            method.
        """
        if self._metadata is None:
            raise DiskFileNotOpen()
        return self
예제 #5
0
    def get_metadata(self):
        """
        Provide the metadata for a previously opened object as a dictionary.

        This is invoked by Swift code in the GET path as follows:
        with disk_file.open():
            metadata = disk_file.get_metadata()

        :returns: object's metadata dictionary
        :raises DiskFileNotOpen: if the
            :func:`swift.obj.diskfile.DiskFile.open` method was not previously
            invoked
        """
        if not self._disk_file_open:
            raise DiskFileNotOpen()
        return self._metadata
    def reader(self, iter_hook=None, keep_cache=False):
        """
        Return a swift.common.swob.Response class compatible "app_iter"
        object. The responsibility of closing the open file is passed to the
        DiskFileReader object.

        :param iter_hook:
        :param keep_cache:
        """
        if self._metadata is None:
            raise DiskFileNotOpen()

        dr = DiskFileReader(self._fs,
                            self._name,
                            int(self._metadata['Content-Length']),
                            self._metadata['ETag'],
                            iter_hook=iter_hook)
        return dr
예제 #7
0
 def content_type(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     return self._metadata.get('Content-Type')
예제 #8
0
 def timestamp(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     return Timestamp(self._metadata.get('X-Timestamp'))
예제 #9
0
 def __enter__(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     return self
예제 #10
0
 def get_datafile_metadata(self):
     '''gluster swift dont have seperate data,meta files '''
     if self._metadata is None:
         raise DiskFileNotOpen()
     return self._metadata
예제 #11
0
 def content_type_timestamp(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     t = self._metadata.get('Content-Type-Timestamp') or \
         self._metadata.get(X_TIMESTAMP)
     return Timestamp(t)
예제 #12
0
 def content_type(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     return self._metadata.get(X_CONTENT_TYPE)
예제 #13
0
 def timestamp(self):
     if self._metadata is None:
         raise DiskFileNotOpen()
     return Timestamp(self._metadata.get(X_TIMESTAMP))