phprestuploadrackspace-cloudrackspace-cloudfiles

Error 422 on uploading rackspace cloudfiles static large object


In reference to this: http://docs.rackspace.com/files/api/v1/cf-devguide/content/Uploading_the_Manifest-d1e2227.html

so I uploaded the following JSON via PUT command on Rackspace:

Body:

[
    {
        "path": "/archive5/8b98fb0bc6f8694d07a1bc851b58f72a",
        "etag": "8b98fb0bc6f8694d07a1bc851b58f72a",
        "size_bytes": 20971520
    },
    {
        "path": "/archive5/c234d0f0204f67340fb4741bdf9f5e92",
        "etag": "c234d0f0204f67340fb4741bdf9f5e92",
        "size_bytes": 8382711
    }
]

URL: https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_hashhash/archive5/606f95dbf0a17bd7d5de202f3aab98c7?multipart-manifest=put

Method: PUT

Headers

ETag: 606f95dbf0a17bd7d5de202f3aab98c7
Content-Type: application/octet-stream
Content-Length: 266
X-Auth-Token: theAuthToken
X-Auth-Project-Id: theProjectId

but then Cloudfiles would then return

Problem saving/updating object [https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_hashhash/archive5/606f95dbf0a17bd7d5de202f3aab98c7] HTTP status [422] response [

Unprocessable Entity

Unable to process the contained instructions

]

What did I do wrong? I've verified that the files in the JSON body indeed exist and that they have the correct path/etag(md5) and filesize...


Solution

  • Have you tried using php-opencloud to do this? There's an upload-large-object.php that takes care of all of the details for you.