Adobe Content Server - 为.acsm文件设置文件名

时间:2014-04-21 11:38:00

标签: adobe drm

我在我们的网站上使用Adobe Content Server(ACS)。我想知道是否有可能在生成GBlink的过程中设置.acsm文件的文件名?

现在,用户下载的每个.acsm文件都有名称" URLLink.acsm"。我发现只有一个提到这个problem on the forum,但没有提出解决方案。我会感激任何帮助。

2 个答案:

答案 0 :(得分:1)

这实际上是可行的,需要您修改fulfillment.war包中的web.xml文件。如果在7-Zip等程序中打开.war包,请浏览到WEB-INF,在那里可以找到web.xml。在第110行或附近,您将找到这段代码:

<servlet-mapping>
        <servlet-name>URLLink</servlet-name>
        <url-pattern>URLLink.acsm</url-pattern>
</servlet-mapping>

您想要将其更改为:

<servlet-mapping>
    <servlet-name>URLLink</servlet-name>
    <url-pattern>*.acsm</url-pattern>
</servlet-mapping>

然后在您的书店中,您可以将GBLink中的URLLink.acsm编码为您想要的任何内容,例如:&#39; BlahBlahBlah.acsm&#39;。

答案 1 :(得分:0)

不幸的是,你可以做到这一点的唯一方法是基本上代表用户反向代理获取ACSM文件 - 即如果你自己调用GBlink,抓住返回的文件,然后将其推送到响应用户的请求。

这样做你需要适当地设置Content-Type(application / vnd.adobe.adept + xml),然后你可以通过显式地设置Content-Disposition头来最终做你想做的事,任意地命名文件,例如:

Content-Disposition: attachment; filename=mycustomname.acsm

我最终在一些边缘案例代码中执行此操作,并不是因为我特别关注任意命名文件,而是因为某些移动浏览器在请求GBlink直接获取ACSM文件时会坚持直接在浏览器中显示ACSM XML内容。设置内容处理:强制下载的附件是解决这个问题的唯一方法,而且由于Adobe Content Server本身非常不灵活,反向代理GBlink fetch实际上是任意更改ACSM响应标头的唯一方法。