5

I was wondering how do i remove a file from Rackspace's Cloudfiles using their API?

Im using php.

Devan

devan
  • 51
  • 2

5 Answers5

3

Use the delete_object method of CF_Container.

Matthew Flaschen
  • 278,309
  • 50
  • 514
  • 539
0

Make sure you set the container and define any sudo folder you are using.

$my_container = $this->conn->get_container($cf_container);
//delete file
$my_container->delete_object($cf_folder.$file_name);
jjwdesign
  • 3,272
  • 8
  • 41
  • 66
0

I thought I would post here since there isn't an answer marked as the correct one, although I would accept Matthew Flaschen answer as the correct one. This would be all the code you need to delete your file

<?php
    require '/path/to/php-cloudfiles/cloudfiles.php';

    $username = 'my_username';
    $api_key = 'my_api_key';
    $full_object_name = 'this/is/the/full/file/name/in/the/container.png';

    $auth = new CF_Authentication($username, $api_key);
    $auth->ssl_use_cabundle();
    $auth->authenticate();

    if ( $auth->authenticated() )
    {
        $this->connection = new CF_Connection($auth);

        // Get the container we want to use
        $container = $this->connection->get_container($name);
        $object = $container->delete_object($full_object_name);
        echo 'object deleted';
    }
    else
    {
        throw new AuthenticationException("Authentication failed") ;
    }

Note that the "$full_object_name" includes the "path" to the file in the container and the file name with no initial '/'. This is because containers use a Pseudo-Hierarchical folders/directories and what end ups being the name of the file in the container is the path + filename. for more info see http://docs.rackspace.com/files/api/v1/cf-devguide/content/Pseudo-Hierarchical_Folders_Directories-d1e1580.html

Onema
  • 7,331
  • 12
  • 66
  • 102
0

Use the method called DeleteObject from class CF_Container.

The method DeleteObject of CF_Container require only one string argument object_name. This arguments should be the filename to be deleted.

See the example C# code bellow:

string username = "your-username";
string apiKey = "your-api-key";

CF_Client client = new CF_Client();
UserCredentials creds = new UserCredentials(username, apiKey);
Connection conn = new CF_Connection(creds, client);

conn.Authenticate();


var containerObj = new CF_Container(conn, client, container);

string file = "filename-to-delete";
containerObj.DeleteObject(file);

Note Don“t use the DeleteObject from class *CF_Client*

Jeferson Tenorio
  • 2,030
  • 25
  • 31
0

Here is my code in C#. Just guessing the api is similar for php.

    UserCredentials userCredientials = new UserCredentials("xxxxxx", "99999999999999");
    cloudConnection = new Connection(userCredientials);
    cloudConnection.DeleteStorageItem(ContainerName, fileName);
earthling
  • 5,084
  • 9
  • 46
  • 90