libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Joshua Hawkinson (JIRA)" <j...@apache.org>
Subject [jira] [Created] (LIBCLOUD-986) List / Iterate container with prefix for Azure Blob service (in addition to the other drivers)
Date Fri, 16 Mar 2018 00:51:00 GMT
Joshua Hawkinson created LIBCLOUD-986:
-----------------------------------------

             Summary: List / Iterate container with prefix for Azure Blob service (in addition
to the other drivers)
                 Key: LIBCLOUD-986
                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-986
             Project: Libcloud
          Issue Type: Improvement
          Components: Storage
            Reporter: Joshua Hawkinson


While testing out the libcloud storage abstraction I've come across a curious omission in
driver support. It seems that for many drivers there is additional support for the \{list_container_objects()}
and

{iterate_container_objects to support a prefix.  This functionality is not present in the
Azure driver for some reason.   I've gone and checked the list_blobs API and ti also supports
this functionality as seen here: [https://docs.microsoft.com/en-us/rest/api/storageservices/list-blobs]
I've attempted a quick and dirty patch that seems to work as well.

{code:python}
azure_blobs.py Line 384

-    def iterate_container_objects(self, container):
+    def iterate_container_objects(self, container, ex_prefix=None):
        """
        @inherits: :class:`StorageDriver.iterate_container_objects`
        """
        params = {'restype': 'container',
                  'comp': 'list',
+                  'prefix': ex_prefix,
                  'maxresults': RESPONSES_PER_REQUEST,
                  'include': 'metadata'}

Line 419 (Add new function)
    def list_container_objects(self, container, ex_prefix=None):
        """
        Return a list of objects for the given container.
    
        :param container: Container instance.
        :type container: :class:`Container`
    
        :param ex_prefix: Only return objects starting with ex_prefix
        :type ex_prefix: ``str``
    
        :return: A list of Object instances.
        :rtype: ``list`` of :class:`Object`
        """
        return list(self.iterate_container_objects(container,
                                                   ex_prefix=ex_prefix))
    
 {code}

 



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Mime
View raw message