Exemplo n.º 1
0
def post_object(api_ver, account, container, object):
    _validate_object(api_ver, account, container, object)

    meta = {}
    for key, value in bottle.request.headers.iteritems():
        key = key.lower()
        if key.startswith("x-object-meta-"):
            meta[key] = value

    try:
        meta['content-type'] = get_content_type(object)
    except bottle.HTTPError:
        pass

    meta_saver = MetaSaver(account, container, object)
    meta_saver.save(meta)

    bottle.response.set_header('x-timestamp', 0)
    bottle.response.status = 202
Exemplo n.º 2
0
def put_object(api_ver, account, container, object):
    _validate_object(api_ver, account, container, object)

    content_length = get_content_length()

    now = datetime.utcnow()

    params = {
        'last-modified': datetime_to_http_iso(now),
        'content-type': get_content_type(object),
        'content-length': content_length,
        'copy-from': get_copy_from(content_length),
        'etag': get_etag(),
    }

    content_stream = get_content_stream(params)

    object_saver = ObjectSaver(account, container, object)
    object_saver.update_metadata(params)
    object_saver.upload_from_stream(content_stream)

    bottle.response.status = 201
Exemplo n.º 3
0
def put_object(api_ver, account, container, object):
    _validate_object(api_ver, account, container, object)

    content_length = get_content_length()

    now = datetime.utcnow()

    params = {
        "last-modified": datetime_to_http_iso(now),
        "content-type": get_content_type(object),
        "content-length": content_length,
        "copy-from": get_copy_from(content_length),
        "etag": get_etag(),
    }

    content_stream = get_content_stream(params)

    object_saver = ObjectSaver(account, container, object)
    object_saver.update_metadata(params)
    object_saver.upload_from_stream(content_stream)

    bottle.response.status = 201