2012-04-17 53 views
1

鑑於這種URLAlfresco REST API:如何在網站中列出文件夾?

http://localhost:8080/alfresco/service/api/sites/test-3 

我回去:

{ 
    "url": "\/alfresco\/service\/api\/sites\/test-3", 
    "sitePreset": "site-dashboard", 
    "shortName": "test-3", 
    "title": "Test 3", 
    "description": "", 
    "node": "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "tagScope": "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "siteManagers": 
    [ 
     "admin" 
    ], 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 

如何我用的信息,以獲得在該網站的文件夾列表?

回答

2

您需要使用不同的API。看看這個shell會話:

$ curl -u admin:admin -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d "{'shortName':{'values':['test'], 'match':'foo'}}" http://localhost:8080/alfresco/service/api/sites/query 

{ 
    "url" : "\/alfresco\/service\/api\/sites\/test", 
    "sitePreset" : "wcmqs-site-dashboard", 
    "shortName" : "test", 
    "title" : "test", 
    "description" : "", 
     "node" : "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/e597e4c2-d307-46e3-ba4d-b911262e7261", 
     "tagScope" : "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/e597e4c2-d307-46e3-ba4d-b911262e7261", 
    "isPublic" : false, 
    "visibility" : "PRIVATE", 
    "siteManagers" : 
    [   
     "admin" 

    ] 
} 

// see the 'node' property up there 
$ curl -u admin:admin http://p01:8080/alfresco/service/api/node/workspace/SpacesStore/e597e4c2-d307-46e3-ba4d-b911262e7261/children 
[..cmis response here..] 
+0

不適合我,它不會返回任何東西 – Whimusical 2015-01-19 11:15:10

1

一個選項是使用CMIS。儘管取決於您確切的需求,但您也可以使用一些內置的web腳本來執行列表

在站點的根目錄中,您有容器,如documentLibrary和wiki。您可以從container.get webscript獲取站點的容器列表。有關詳細信息,請參閱org/alfresco/slingshot/documentlibrary/container.get.desc.xml。如在該文件中,因爲它的URL模式,是/彈弓/ doclib /集裝箱/ {網站}

curl -u admin:admin http://localhost:8080/alfresco/service/slingshot/doclib/containers/test 
{ 
    "containers": 
    [ 
     { 
     "name": "documentLibrary", 
     "description": "Document Library", 
     "nodeRef": "workspace://SpacesStore/973338a0-db39-458e-a10d-396f00cb16a3", 
     "type": "cm:folder" 
     } 
    ] 
} 

接下來,當你知道你要使用的什麼容器或文件夾的容器內treenode.get webscript可以讓你列出,如

curl -u admin:admin http://localhost:8080/alfresco/service/slingshot/doclib/treenode/site/test/documentLibary 
{ 
    "totalResults": 0, 
    "resultsTrimmed": false, 
    "parent": 
    { 
     "nodeRef": "workspace://SpacesStore/92e4f8de-b919-4540-a27a-16c4e53a57bc", 
     "userAccess": 
     { 
      "create": true, 
      "edit": true, 
      "delete": true 
     } 
    }, 
    "items": 
    [ 
    ] 
} 

我也可以推薦您使用http://localhost:8080/alfresco/service/index查看什麼webscripts存在於你的系統,並獲得他們的信息,它幫助了很多類似的情況這

+0

我不明白。當我打電話給你的第二個服務時,items集合總是空的。但是當我查看站點時,我在http:// localhost:8080/share/page/site/test-3/documentlibrary中有一個文檔和一個文件夾。 – 2012-04-18 21:32:59

+0

這是在複製/移動對話框時共享呼叫的web腳本。我建議你使用類似螢火蟲的東西來查看你的案例中的共享呼叫,以及它返回的內容,並用它來發現你的稍有不同 – Gagravarr 2012-04-19 09:15:07

0

負載網站:http://localhost:8080/alfresco/service/api/sites/test-3

{ 
    "url": "\/alfresco\/service\/api\/sites\/test-3", 
    "sitePreset": "site-dashboard", 
    "shortName": "test-3", 
    "title": "test 3", 
    "description": "", 
    "node": "\/alfresco\/service\/api\/node\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "tagScope": "\/alfresco\/service\/api\/tagscopes\/workspace\/SpacesStore\/0352afea-797f-4b9e-be27-3bf37e54a2f1", 
    "siteManagers": 
    [ 
      "admin" 
    ], 
    "isPublic": true, 
    "visibility": "PUBLIC" 
} 

獲取使用從節點屬性提取的ID的網站內容:http://localhost:8080/alfresco/service/api/node/workspace/SpacesStore/0352afea-797f-4b9e-be27-3bf37e54a2f1/children

裏面是用的標題是「documentLibrary」的節點。利用其ID GUID,可以去撿些孩子

http://localhost:8080/alfresco/service/cmis/s/workspace:SpacesStore/i/b68db1eb-547d-4b2c-b5eb-ba207a275789/children

如果你有自定義屬性,它們將出現在使用此API調用的子項。

使用子項目的ID,您可以獲取其內容。

http://localhost:8080/alfresco/service/cmis/s/workspace:SpacesStore/i/2d53f464-bea0-46f3-aa0c-10b3302e661c/content

0

使用此URL來獲得文件夾列表。

http://localhost:8080/alfresco/service/api/node/workspace:SpacesStore/store_id/b0697dd1-ae94-4bf6-81c8-5e2fa098ddfa/children 
相關問題