更新修改文件到Rackspace Cloud


Updating Modifying File To Rackspace Cloud

如何将文件更新到rackspace api?我已经尝试了下面的代码,它只工作,如果我上传图像两次。有办法这样做吗?

public function updateRackSpaceFile($file_name, $file_location, $container_name='photos'){
        $auth=self::getAuthorization();
        $conn = new 'CF_Connection($auth);
        $container_object = $conn->get_container($container_name);
        $object=$container_object -> get_object($file_name);
        $object ->load_from_filename($file_location);
    }

我认为你不需要在对象上做get操作。只需创建一个新对象并上传即可。它将用相同的名称替换对象。

    $fname = basename('image.jpg');
    $md5 = md5_file($fname);
    $container = $conn->get_container('my_container');
    $o2 = $container->create_object($fname);
    $o2->content_type = "image/jpeg";
    $o2->set_etag($md5);
    $result = $o2->load_from_filename($fname);
    assert('!is_null($result)');
    assert('$o2->getETag() == $md5');