service = get_storage()
    req = service.objects().get(
        bucket=kwargs['bucket'],
        object=filename_remote)
    try:
        req.execute()
        return True
    except HttpError as e:
        if e.resp.status == 404:
            return False
        else:
            raise


def pull(filename_remote, **kwargs):
    service = get_storage()
    req = service.objects().get(
        object=filename_remote,
        bucket=kwargs['bucket'])
    resp = req.execute()
    print(resp)
    files = []
    for key in keys:
        logging.info("S3 Load: %s", key)
        files.append(ReadLineWrapper(key))
    return files


BabeBase.addProtocolPushPlugin('gs', push, None, check_exists)
BabeBase.addProtocolPullPlugin('gs', pull)
Beispiel #2
0
def build_host(kwargs):
    host = kwargs['host']
    if 'port' in kwargs:
        host = host + ':' + str(kwargs['port'])
    if 'user' in kwargs:
        host = kwargs['user'] + ':' + kwargs['password'] + '@' + host
    return host


def push(filename_topush, filename_remote, **kwargs):
    req = urllib2.Request()
    req.add_data
    host = build_host(kwargs)
    f = open(filename_topush, 'rb')
    urllib2.urlopen(url='%s://%s/%s' %
                    (kwargs['protocol'], host, filename_remote),
                    data=f)
    f.close()


def pull(filename_remote, **kwargs):
    host = build_host(kwargs)
    url = '%s://%s/%s' % (kwargs['protocol'], host, filename_remote)
    return urllib2.urlopen(url)


BabeBase.addProtocolPushPlugin('http', push, None)
BabeBase.addProtocolPullPlugin('http', pull)
BabeBase.addProtocolPushPlugin('https', push, None)
BabeBase.addProtocolPullPlugin('https', pull)
Beispiel #3
0
def progress_call_back(done, todo):
    print "Done %u out of %u (%f%%)" % (done, todo, (done*100)/todo)

def pull(filename_remote, **kwargs):
    bucket = get_bucket(kwargs)
    cache = BabeBase.get_config("s3", "cache", default=False)
    fail_on_empty = kwargs.get("fail_on_empty", True)
    if cache:
        default_cache_dir = "/tmp/pybabe-s3-cache-%s" % os.getenv('USER')
        cache_dir = BabeBase.get_config("s3", "cache_dir", default=default_cache_dir)
        if not os.path.exists(cache_dir):
            os.makedirs(cache_dir)
    keys = get_keys(bucket, filename_remote, fail_on_empty=fail_on_empty)
    files = []
    for key in keys:
        logging.info("S3 Load: %s", key)
        if cache:
            f = os.path.join(cache_dir, os.path.basename(key.name) + "-" + key.etag.replace('"', ''))
            if os.path.exists(f):
                files.append(open(f, "r"))
            else:
                key.get_contents_to_filename(f + ".tmp", cb=progress_call_back)
                os.rename(f + ".tmp", f)
                files.append(open(f, "r"))
        else:
            files.append(ReadLineWrapper(key))
    return files

BabeBase.addProtocolPushPlugin('s3', push, None, check_exists)
BabeBase.addProtocolPullPlugin('s3', pull)
Beispiel #4
0
import urllib2


def build_host(kwargs):
    host = kwargs['host']
    if 'port' in kwargs:
        host = host + ':' + str(kwargs['port'])
    if 'user' in kwargs:
        host = kwargs['user'] + ':' + kwargs['password'] + '@' + host
    return host


def push(filename_topush, filename_remote, **kwargs):
    req = urllib2.Request()
    req.add_data
    host = build_host(kwargs)
    f = open(filename_topush, 'rb')
    urllib2.urlopen(url='%s://%s/%s' % (kwargs['protocol'], host, filename_remote), data=f)
    f.close()


def pull(filename_remote, **kwargs):
    host = build_host(kwargs)
    url = '%s://%s/%s' % (kwargs['protocol'], host, filename_remote)
    return urllib2.urlopen(url)

BabeBase.addProtocolPushPlugin('http', push, None)
BabeBase.addProtocolPullPlugin('http', pull)
BabeBase.addProtocolPushPlugin('https', push, None)
BabeBase.addProtocolPullPlugin('https', pull)
Beispiel #5
0
def push(filename_topush, filename_remote, **kwargs):
    from ftplib import FTP
    ftp = FTP()
    ftp.connect(kwargs['host'], kwargs.get('port', None))
    ftp.login(kwargs.get('user', None), kwargs.get('password', None))
    f = open(filename_topush, 'rb')
    ftp.storbinary('STOR %s' % filename_remote, f)
    f.close()
    ftp.quit()


def early_check(**kwargs):
    from ftplib import FTP
    ftp = FTP()
    ftp.connect(kwargs['host'], kwargs.get('port', None))
    ftp.login(kwargs.get('user', None), kwargs.get('password', None))
    ftp.quit()


def pull(filename_remote, **kwargs):
    host = kwargs['host']
    if 'port' in kwargs:
        host = host + ':' + str(kwargs['port'])
    if 'user' in kwargs:
        host = kwargs['user'] + ':' + kwargs['password'] + '@' + host
    return urllib.urlopen('ftp://%s/%s' % (host, filename_remote))

BabeBase.addProtocolPushPlugin('ftp', push, early_check)
BabeBase.addProtocolPullPlugin('ftp', pull)