fir3net
PPS-Firenetbanner-780.5x190-30-03-17

How do I purge a File from Rackspace`s Cloud File CDN Caches ?

Within this article we will show you how to purge a file from Rackspace`s Cloud File CDN Caches.

Get Auth Token

First all you will need to obtain the Auth Token. This token will be used to perform further actions via the API.
For this you will need to obtain your API Key which can be found from the Rackspace Cloud Portal.

Note : The option 'python -m json.tool' was introduced within Python 2.6.

curl -s https://lon.identity.api.rackspacecloud.com/v2.0/tokens -X 'POST' \
      -d '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"<USERNAME>", "apiKey":"<API KEY>"}}}' \
      -H "Content-Type: application/json" | python -m json.tool

Below shows an example. I have highlighted the Auth Token and the Cloudfile public URL. Both of which you will need within the next step(s).

[root@server ~]# curl -s https://lon.identity.api.rackspacecloud.com/v2.0/tokens -X 'POST'   \
>        -d '{"auth":{"RAX-KSKEY:apiKeyCredentials":{"username":"<USERNAME>", "apiKey":"<API KEY>"}}}'  \
>        -H "Content-Type: application/json" | python -m json.tool
{
    "access": {
        "serviceCatalog": [
            {
                "endpoints": [
                    {
                        "publicURL": "https://cdn3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd17755fa",
                        "region": "LON",
                        "tenantId": "MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd17755fa"
                    }
                ],
                "name": "cloudFilesCDN",
                "type": "rax:object-cdn"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.servers.api.rackspacecloud.com/v1.0/10008012",
                        "tenantId": "10008012",
                        "versionId": "1.0",
                        "versionInfo": "https://lon.servers.api.rackspacecloud.com/v1.0",
                        "versionList": "https://lon.servers.api.rackspacecloud.com/"
                    }
                ],
                "name": "cloudServers",
                "type": "compute"
            },
            {
                "endpoints": [
                    {
                        "internalURL": "https://snet-storage101.lon3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd17755fa",
                        "publicURL": "https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd17755fa",
                        "region": "LON",
                        "tenantId": "MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd17755fa"
                    }
                ],
                "name": "cloudFiles",
                "type": "object-store"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.loadbalancers.api.rackspacecloud.com/v1.0/10008012",
                        "region": "LON",
                        "tenantId": "10008012"
                    }
                ],
                "name": "cloudLoadBalancers",
                "type": "rax:load-balancer"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.blockstorage.api.rackspacecloud.com/v1/10008012",
                        "region": "LON",
                        "tenantId": "10008012"
                    }
                ],
                "name": "cloudBlockStorage",
                "type": "volume"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://monitoring.api.rackspacecloud.com/v1.0/10008012",
                        "tenantId": "10008012"
                    }
                ],
                "name": "cloudMonitoring",
                "type": "rax:monitor"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.dns.api.rackspacecloud.com/v1.0/10008012",
                        "tenantId": "10008012"
                    }
                ],
                "name": "cloudDNS",
                "type": "rax:dns"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.databases.api.rackspacecloud.com/v1.0/10008012",
                        "region": "LON",
                        "tenantId": "10008012"
                    }
                ],
                "name": "cloudDatabases",
                "type": "rax:database"
            },
            {
                "endpoints": [
                    {
                        "publicURL": "https://lon.servers.api.rackspacecloud.com/v2/10008012",
                        "region": "LON",
                        "tenantId": "10008012",
                        "versionId": "2",
                        "versionInfo": "https://lon.servers.api.rackspacecloud.com/v2",
                        "versionList": "https://lon.servers.api.rackspacecloud.com/"
                    }
                ],
                "name": "cloudServersOpenStack",
                "type": "compute"
            }
        ],
        "token": {
            "expires": "2012-11-13T06:08:48.000Z",
            "id": "7b93bf4f-24f9-40f8-86b5-8bd5590e06d1",
            "tenant": {
                "id": "10008012",
                "name": "10008012"
            }
        },
        "user": {
            "RAX-AUTH:defaultRegion": "",
            "id": "5246",
            "name": "###",
            "roles": [
                {
                    "description": "User Admin Role.",
                    "id": "3",
                    "name": "identity:user-admin"
                }
            ]
        }
    }
}

List Containers

To list the Cloud File containers we can use the following command.

curl -H "X-Auth-Token: <AUTH TOKEN>" https://storage101.lon3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfd1a755fa

Purge File

To purge the file the following command is used. Once this has been actioned an email will be sent to the email address supplied below. 

curl -X DELETE -H "X-Purge-Email: <YOUR EMAIL ADDRESS>" -H "X-Auth-Token: <AUTH TOKEN>" https://cdn3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfda7755fa/images/legacy/oldimage.png

Download File

As a side note to download the file the following command would be used.

curl -XGET -H "X-Auth-Token: <AUTH TOKEN>" https://cdn3.clouddrive.com/v1/MossoCloudFS_e69726fd-c72e-4873-b8ae-45dfda7755fa/images/legacy/oldimage.png > oldimage.png

About the Author

RDonato

R Donato

Rick Donato is the Founder and Chief Editor of Fir3net.com. He currently works as a Principal Network Security Engineer and has a keen interest in automation and the cloud.

You can find Rick on Twitter @f3lix001