Storing an ACL
You use the HTTP PUT method to store or replace an ACL for an existing object. ACLs can be specified in XML or JSON format. Unlike storing annotations, you can store an ACL for an object under retention.
An ACL is stored as a single unit. You can add it or replace it in its entirely, but you cannot add to or change an existing ACL. If you store an ACL for an object that already has an ACL, the new ACL replaces the existing ACL.
When you store an ACL for an object, the ACL is also stored for all old versions of that object.
You can use the HCP Search Console to modify ACLs on multiple objects with a single operation.
Access permission
To store or replace an ACL for an object, you need write ACL permission.
Usage consideration
The PUT of an ACL may fail with an HTTP 409 (Conflict) error code if a large number of clients try to store ACLs for multiple objects at the same time. In this case, limit the number of concurrent requests from clients to the namespace.
Request header
PUT /rest/directory/file?type=acl HTTP/1.1
Parameter | Required | Description |
directory | Yes | Folder name. |
file | Yes | Name of the file, including file extension. |
type | Yes | Use the value acl . |
Response headers
This operation does not return any request-specific headers.
Return codes
The table below describes the HTTP return codes that have specific meaning for this request.
Code | Meaning | Description |
201 | Created | HCP successfully stored the ACL. |
400 | Bad Request |
One of:
If more information about the error is available, the HTTP response headers include the HCP-specific |
403 | Forbidden |
One of:
If more information about the error is available, the HTTP response headers include the HCP-specific |
404 | Not Found |
One of:
|
415 | Unsupported Media Type |
One of:
|
Example: Storing an ACL for an object
Here’s a sample HTTP PUT request that stores the ACL defined in the
Q1_2012.acl.xml file for an existing object named Q1_2012.ppt.
Request with curl command line
curl -k -H "Authorization: HCP bXl1c2Vy:3f3c6784e97531774380db177774ac8d" -iT Q1_2012.acl.xml -H "Content-Type: application/xml" "https://finance.europe.hcp.example.com/rest/quarterly_rpts/ Q1_2012.ppt?type=acl"
Request in Python using PycURL
import pycurl import os filehandle = open("Q1_2012.acl.xml", 'rb') curl = pycurl.Curl() curl.setopt(pycurl.HTTPHEADER, ["Authorization: HCP bXl1c2Vy:3f3c6784e97531774380db177774ac8d"]) curl.setopt(pycurl.URL, "https://finance.europe.hcp.example.com \ /rest/quarterly_rpts/Q1_2012.ppt?type=acl") curl.setopt(pycurl.SSL_VERIFYPEER, 0) curl.setopt(pycurl.SSL_VERIFYHOST, 0) curl.setopt(pycurl.UPLOAD, 1) curl.setopt(pycurl.INFILESIZE, os.path.getsize("Q1_2012.acl.xml")) curl.setopt(pycurl.READFUNCTION, filehandle.read) curl.perform() print curl.getinfo(pycurl.RESPONSE_CODE) curl.close() filehandle.close()
Request headers
PUT /rest/quarterly_rpts/Q1_2012.ppt?type=acl HTTP/1.1 Host: finance.europe.hcp.example.com Authorization: HCP bXl1c2Vy:3f3c6784e97531774380db177774ac8d Content-Length: 246
Response headers
HTTP/1.1 201 Created X-HCP-ServicedBySystem: hcp.example.com Location: /rest/quarterly_rpts/Q1_2012.ppt X-HCP-Time: 1334772280 Content-Length: 0