Confluence で不足している添付ファイルを解決する方法
プラットフォームについて: Server および Data Center のみ。この記事は、Server および Data Center プラットフォームのアトラシアン製品にのみ適用されます。
サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
目的
When viewing or attempting to download attachments, you may receive a "Page not found" error. Additionally, you may receive either of the following errors in the application logs ( atlassian-confluence.log
)
No AttachmentData object was returned when it was expected for attachment: Attachment: fileName v.1 (123456789)
2023-03-11 13:06:30,291 WARN [http-nio-8081-exec-172] [atlassian.confluence.pages.DefaultAttachmentManager] getAttachmentData Could not find data for attachment: Attachment: image2022-1-8 11:48:26.png v.1 (873607111) mninnes - com.atlassian.confluence.pages.persistence.dao.filesystem.AttachmentDataFileSystemException: No such file for Attachment: image2022-1-8 11:48:26.png v.1 (873607111) mninnes. Were looking at /sharedhome/confluence/data/attachments/ver003/205/184/874184705/88/96/873596338/873607111/1
The key string for the second error is the 'Were looking at'.
In many cases, the attachment itself is still on disk but isn't located in the specific directory that it's expected to be in. Often this is due to an earlier page move operation that was incomplete, and so if we can find the attachment still on disk in a different directory, we just need to relocate it to the correct subdirectory that Confluence is expecting it to be in.
As mentioned above, missing file problems are fixed in Confluence 8.1 because of the new attachment directory structure which doesn't require files to be moved if the page that they're attached to is moved)
診断
If your attachments are still somewhere in your attachment directory, this knowledge article will help you resolve the broken attachments.
If you're using database attachment storage...
You should refer to the section labelled "Solution - Database Based Attachment Storage"
If you're hitting into missing attachments issue after performing Space Import
You should not proceed with these steps, as when importing a Space - new IDs are generated for Space IDs, Page IDs and Attachment IDs, and the script would not work well. Instead, please contact Atlassian Support for further assistance.
ディスクで添付ファイル ID を検索しても結果が返されない場合...
You should not proceed with these steps, and instead restore your missing attachments directory from a backup. You may still need to recover missing attachments after restoring the files to disk.
To see if your attachments exist in your attachment directory, search the folder directory for an example attachment id of a broken attachment. For example, if your attachment has an ID of 123456789
, search your confluence home directory for a folder with this name. If you get a result, it means your attachment is on disk.
For Unix systems
find <confluence-attachment-dir> | grep 123456789
または
find . -name 123456789
For Windows systems
dir <confluence-attachment-dir> /s | findstr 123456789
Solution - File System based Attachment Storage (Confluence 3.0 and higher)
ディスク上に引き続き存在する、不足している添付ファイルを修正するスクリプトを用意しました。
Download the Missing Attachments Script and follow the directions in the README.MD file
NOTE: Please ensure that at minimum Python 2.7 is installed, Python 3.5+ is recommended. Confluence must also be stopped whilst this script runs to ensure that there's no concurrent file operations occurring within the attachments directory.
It's recommended to run this from a Confluence node but you may also run the script from a local machine. The script requires access to the attachments directory from wherever you choose to run the script from, so ideally you should ensure that the OS user account running this script is the same OS user account which runs the Confluence process (preferred), or an account with equivalent rights/permissions.
WARNING: Before you begin, ensure you have a full backup of your attachments directory. You should test your recovery on a test server before applying it to production.
引き続き、ページで直接、あるいは添付ファイルリンクで添付ファイルをプレビューできないが、ファイルのダウンロードは行える場合、次の手順を行います。
- Try to rebuild the file preview cache from scratch in Confluence
- Clear your browser cache and perform a hard reload of the page in your browser.
- 匿名モードがトラブルシューティングに役立つ可能性があります。
Solution - Database based Attachment Storage
データベースを基盤とする添付ファイル ストレージは Confluence 5.6 以降で廃止予定になっていることにご注意ください。新しいインスタンスでデータベースを基盤とする添付ファイル ストレージにスワップすることはできません。データベース基盤の添付ファイル ストレージを使っている場合、ファイル システムを基盤とするストレージに移行することをおすすめします。
There is no tool available to generate a report for missing attachments. However, if you find that you have attachments missing you can restore the attachment to the ATTACHMENTDATA table from a recent SQL backup.
If you do not have a Confluence backup from which you can restore an attachment, you can delete the attachment's record from the database. To delete the attachment if using database storage, run the following SQL commands:
For Confluence 5.7 or newer
DELETE FROM CONTENTPROPERTIES WHERE CONTENTID IN (SELECT CONTENTID FROM CONTENT WHERE CONTENTTYPE = 'ATTACHMENT' and TITLE LIKE '%<ATTACHMENT_NAME>%');
DELETE FROM CONTENT WHERE CONTENTTYPE = 'ATTACHMENT' AND TITLE LIKE '%<ATTACHMENT_NAME>%';
Confluence 5.6.x 以前
DELETE FROM attachmentdata WHERE attachmentid IN (SELECT attachmentid FROM ATTACHMENTS WHERE TITLE LIKE '%<ATTACHMENT_NAME>%' );
DELETE FROM ATTACHMENTS WHERE TITLE LIKE '%<ATTACHMENTNAME>%'
これらのクエリで返される結果では、添付ファイルが不足しているかどうかはわかりません。