libcloud-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Tomaz Muraus (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LIBCLOUD-275) Utility APIs for containers
Date Mon, 07 Apr 2014 16:14:15 GMT

    [ https://issues.apache.org/jira/browse/LIBCLOUD-275?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13961973#comment-13961973
] 

Tomaz Muraus commented on LIBCLOUD-275:
---------------------------------------

Yeah, in this case we should just spend a bit more effort up-front, do it correctly and add
it to the base API.

> Utility APIs for containers
> ---------------------------
>
>                 Key: LIBCLOUD-275
>                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-275
>             Project: Libcloud
>          Issue Type: New Feature
>          Components: Storage
>            Reporter: Mahendra M
>            Assignee: Mahendra M
>            Priority: Minor
>
> While working with libcloud, I thought it will be good to have some utility APIs to containers,
which will help in easier use. Some APIs will have a base class implementation, which can
be easily over-written in each driver based on the storage provider.
> Some APIs that I have in mind are:
> 1. container.copy_object(obj, target_container)
> Copies an object from one container to another. Base class implementation can be
>    target_container.upload_object_via_stream(container.download_object_as_stream(obj),
obj.name)
> In each driver, this can be over-written to use specific methods to do this (AWS, Azure
etc. provide APIs for doing this).
> 2. container.move_object(obj, target_container)
>  Base class implementation can be:
>    container.copy_object(obj, target_container)
>    obj.delete()
>  Again, driver specific extensions can be done.
> 3. container.sync_to_local(local_path, only_missing=True, only_newer=False)
> 4. container.sync_from_local(local_path, followlinks=False, prefix='', only_missing=True,
only_newer=False)
> The above two functions are good for syncing local folder repos with cloud. The functions
are ridiculously easy to implement and will provide good mechanism for sync. (For eg: syncing
a folder which contains 500 HLS chunks of a video)
> The parameters used are:
> * only_missing - sync only files that missing in the target (container or folder)
> * only_newer - sync only files that have last-modified (or m_time) more than the target
> * prefix - A prefix to be prefixed to each object name while syncing from a local folder.
> I am just opening a ticket so that we can discuss this and finalize it. Once everyone
agree, I can submit/check-in a patch



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message