How to disable attachment downloads
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
このガイドは参考情報として提供され、アトラシアンのサポート対象ではありません。このページの内容について質問がある場合、アトラシアン コミュニティでお問い合わせください。
目的
To make attachments not available to download. Follow the instructions below to disable attachment downloads.
ソリューション
Code Changes Required
This configuration requires changing the Confluence code in your installation. You will need to reapply these changes whenever you upgrade Confluence. Proceed with caution.
At the moment, permissions for downloading attachments can't be set. To disable attachment downloading you need to edit your velocity files. Attachments can currently be downloaded in two separate ways:
- Viewing the attachments for a page
- Viewing all the attachments for a Space (Browse > Attachments)
These customizations will disable attachment downloads for all users, including administrators.
Disable attachments for a whole Space
To disable downloading attachments from a Space, you need to edit the listattachmentsforspace.vm file. This file can be found at the below location.
- <Confluence-installation-directory>/confluence/pages
Delete or comment out the following line:
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> <a href="$req.contextPath$!attachment.downloadPathWithoutVersion">$generalUtil.shortenString($attachment.fileName, 50)</a></td>
and replace it with either of the following two code blocks:
Disabling downloading for all attachments
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> $generalUtil.shortenString($attachment.fileName, 50)</td>
Disabling downloading for specific file types
#set($disabledDownloads = ['ext1', 'ext2'])
#set($disabled = false)
#set($attachmentExtension = $attachment.fileExtension)
<tr id="attachment_$!attachment.id">
#foreach($doNotDownload in $disabledDownloads)
#if($attachmentExtension == $doNotDownload)
#set($disabled = true)
#break
#end
#end
#if(!$disabled)
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> <a href="$req.contextPath$!attachment.downloadPathWithoutVersion">$generalUtil.shortenString($attachment.fileName, 50)</a></td>
#else
<td><a name="$!generalUtil.urlEncode($!attachment.content.displayTitle)-attachment-$!generalUtil.urlEncode($!attachment.fileName)">#parse ("/pages/includes/attachment_icon.vm")</a> $generalUtil.shortenString($attachment.fileName, 50)</td>
#end
To specify which files you want disabled, change the
'ext1', 'ext2'
in the first line to the extensions for which you want to disable downloading. You can specify as many extensions as you want, as long as they are in quotes, are comma separated and do not include the '.' at the start. For example, if I did not want users to download .jpg, .doc and .png files, the line would read
#set($disabledDownloads = ['jpg', 'doc', 'png'])
Disable attachments for a specific page
If you take the steps in this section but not in the section above, the files you disable can still be downloaded by browsing all attachments for a Space.
To disable downloading attachments from a specific page, you need to edit the attachments-table.vm file. This file can be found at the below location.
- <Confluence-installation-directory>/confluence/pages/includes
Delete or comment out the line
<a class="filename" href="$generalUtil.htmlEncode("${req.contextPath}${attachment.downloadPathWithoutVersion}")" title="$generalUtil.htmlEncodeAndReplaceSpaces($attachment.fileName)" >$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))</a>
and replace it with either of the following two code blocks:
Disabling downloading for all attachments
$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))
Disabling downloading for specific file types
#set($disabledDownloads = ['ext1', 'ext2'])
#set($disabled = false)
#set($attachmentExtension = $attachment.fileExtension)
#foreach($doNotDownload in $disabledDownloads)
#if($attachmentExtension == $doNotDownload)
#set($disabled = true)
#break
#end
#end
#if(!$disabled) <a class="filename" href="$generalUtil.htmlEncode("${req.contextPath}${attachment.downloadPathWithoutVersion}")" title="$generalUtil.htmlEncodeAndReplaceSpaces($attachment.fileName)" >$generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))</a>
#else $generalUtil.htmlEncode($generalUtil.shortenString($attachment.fileName, 35))
#end
Again, to specify which files you want disabled, change the
'ext1', 'ext2'
in the first line to the extensions for which you want to disable downloading. You can specify as many extensions as you want, as long as they are in quotes, are comma separated and do not include the '.' at the start. For example, if I did not want users to download .jpg, .doc and .png files, the line would read
#set($disabledDownloads = ['jpg', 'doc', 'png'])
Removing the 'Download All' button
If you do not take the steps in this section, users will still be able to download all attachments regardless of whether they have been disabled or not.
- Click , then General Configuration
- Click Stylesheet, then the Edit button
Add the following to the Global Stylesheet
a.download-all-link { display: none !important; } a#download-all-link { display: none !important; }
- 保存します。
You can alternatively just disable Download All on a space by space basis by adding the above CSS to individual Space Stylesheets instead:
- Go to the space and choose Space Tools > Look and Feel from the bottom of the sidebar
- Choose Stylesheet then Edit.
- Paste the above CSS into the text field.
- 保存します。
Removing the 'Download All' button along with the 'download' Icon while previewing the attachment
You can also remove download options by suppressing HTML elements using the Custom HTML section within Confluence. While the above steps can remove the 'Download All' option, users can still manage to download the attachment by previewing it and using the 'Download Icon'. You can use the following steps to suppress both the download all and the download icon.
- Go to Confluence 'gear' icon and click on 'General Configuration'
- Go to 'Custom HTML'
- Edit and insert the following code into the 'At end of the HEAD' section.
- Save.
<style type="text/css">
.cp-control-panel-download {
display:none !important;
}
.cp-waiting-message-download {
display:none !important;
}
a.download-all-link {
display: none !important;
}
a#download-all-link {
display: none !important;
}
</style>