We now got a custom content model applied with a custom content type called acme:document. We can use it when uploading a file as follows:
$ curl -X POST -F filedata=@test.txt -F "name=somefile.txt" -F "nodeType=acme:document" -F "acme:documentId=DOC001" -F "aspectNames=acme:securityClassified" -F "acme:securityClassification=Public" -F "cm:title=My text" -F "cm:description=My custom text document description" -F "relativePath=My Custom Folder" -H 'Authorization: Basic VElDS0VUXzA4ZWI3ZTJlMmMxNzk2NGNhNTFmMGYzMzE4NmNjMmZjOWQ1NmQ1OTM=' http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/-root-/children | jq
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1957 100 804 100 1153 761 1091 0:00:01 0:00:01 --:--:-- 1853
{
"entry": {
"isFile": true,
"createdByUser": {
"id": "admin",
"displayName": "Administrator"
},
"modifiedAt": "2019-09-09T07:38:55.060+0000",
"nodeType": "acme:document",
"content": {
"mimeType": "text/plain",
"mimeTypeName": "Plain Text",
"sizeInBytes": 34,
"encoding": "ISO-8859-1"
},
"parentId": "69470c63-ea8f-4a93-a408-673d5668e369",
"aspectNames": [
"cm:versionable",
"cm:titled",
"cm:auditable",
"acme:securityClassified",
"cm:author"
],
"createdAt": "2019-09-09T07:38:55.060+0000",
"isFolder": false,
"modifiedByUser": {
"id": "admin",
"displayName": "Administrator"
},
"name": "somefile.txt",
"id": "d8f561cc-e208-4c63-a316-1ea3d3a4e10e",
"properties": {
"cm:title": "My text",
"acme:securityClassification": "Public",
"cm:versionType": "MAJOR",
"acme:documentId": "DOC001",
"cm:versionLabel": "1.0",
"cm:description": "My custom text document description"
}
}
}
We can see that the custom content type (i.e. acme:document) has been set correctly, including the property it contains (i.e. acme:documentId). At the same time we also show how to apply new aspects with the aspectNames field (note that some aspects are set automatically when you upload a file, such as cm:author, cm:auditable etc). So this call is quite powerful.