Я интерпретирую ваше требование следующим образом: вы хотите использовать функцию «Quick Share» Alfresco Share, доступную в Alfresco Community 4.2 и Alfresco Cloud.
Alfresco Share использует следующий внутренний API (REST/Webscript) для запуска Quick Share:
POST /api/internal/shared/share/{store_protocol}/{store_id}/{node_id}
которые возвращают сгенерированный идентификатор быстрого доступа в виде json:
{
"sharedId": "IHR65hlGT9yOTKwqPYMbRw"
}
WebScript реализован как WebScript на основе Java. Контроллер
org.alfresco.repo.web.scripts.quickshare.ShareContentPost
который использует следующую службу:
org.alfresco.repo.quickshare.QuickShareServiceImpl
Как видите, здесь эта служба генерирует UUID (идентификатор ссылки) и устанавливает значение как свойство qshare:sharedId (аспект qshare:shared):
UUID uuid = UUIDGenerator.getInstance().generateRandomBasedUUID();
sharedId = Base64.encodeBase64URLSafeString(uuid.toByteArray()); // => 22 chars (eg. q3bEKPeDQvmJYgt4hJxOjw)
Map<QName,Serializable> props = new HashMap<QName,Serializable>(2);
props.put(QuickShareModel.PROP_QSHARE_SHAREDID, sharedId);
props.put(QuickShareModel.PROP_QSHARE_SHAREDBY, AuthenticationUtil.getRunAsUser());
nodeService.addAspect(nodeRef, QuickShareModel.ASPECT_QSHARE, props);
Вы должны иметь возможность сделать это через CMIS, но эта служба также устанавливает атрибут через AttributeService (сохраняет все общие идентификаторы для каждого арендатора):
attributeService.setAttribute(tenantNodeRef, ATTR_KEY_SHAREDIDS_ROOT, sharedId)
Я не уверен, для какой цели это используется, и если это ДОЛЖНО быть для вашего требования.
person
alfrescian
schedule
12.09.2013
http://localhost:8080/share/s/"theSharedContentIdAutoGenerated"
- person user2758757   schedule 11.09.2013