A batched alternative to Auto Attachments (adds and removes attachements).
Usage
This plugin provides a REST handler that can replace the inbuilt
{AutoAttachPubFiles}
functionality with a batched update - so you can upload
(ftp, drag&drop etc) images into Foswiki's pub area, and then tell Foswiki to
update the attachments to all your topics.
This will allow you to use
viewfile
(which will refuse to serve files not in
the topic Meta), SEARCH for attachments, use
DBCacheContrib &
DBCachePlugin,
and use any other functionality that relies on the topics containing Meta
registration of attachments (as are made when attaching through the web UI).
Doing this may provide a speed advantage as it will remove the need for Foswiki
to scan the requested topics' attachment directory if the
{AutoAttachPubFiles}
is enabled. In fact, this plugin actively disables this
flag as it becomes redundant by the REST handler and moreover hurts overall
performance.
This plugin is currently the only way to support auto attachments when using
the PlainFile Store.
Also, it will (optionally) remove attachment references to files that no longer
exist in the topic's attachment directory.
Warning: because Foswiki does not deal well with attachments with special
characters (or even spaces) in them, these files will be ignored on update.
Triggering an Attachment Update
As this is a REST handler based plugin, you can trigger it to run from a
suitably authenticated URL (it will only update topics your user as permission
to edit) - for example, to update the Sandbox web
If you get a 500 or premature end of script error, chances are your current
user does not have permission to change the web or topics.
Preferably, use a cronjob to do the same operation offline.
-
cd foswiki-dir/bin; ./rest /UpdateAttachmentsPlugin/update topic=Sandbox.WebHome
Make sure the cronjob is running as the same user as Foswiki's web server. If
the ownership of any files updated by this extension changes, it can prevent
web access to Foswiki.
Other parameters to the REST handler are:
Parameter |
Description |
Default |
topic |
set the current web.topic location where to perform the handler |
Main.WebHome |
mode |
mode of operation: -
web : inspect all topics of the current web -
topic : inspect only the current topic as described in the topic parameter -
topics : reads a list of topics from the list parameter -
preferences : reads a list of topics from the UPDATEATTACHMENTS preference variable |
web |
list |
a comma separated list of topics to be inspected; this sets the mode to topics automatically |
|
hide |
Specify if the "hidden" attribute should be assigned for new attachments. (Status of existing attachments is not changed). |
Settings
These settings are in the configure web interface in the Update
Attachments Plugin section of
configure.
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{AttachAsUser}
- defaults to the unknown user. To reset the attributed user for attachments that already exist, touch
the files in the attachment directory.
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{RemoveMissing}
- will remove attachment references in a topic that no longer exist
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{Debug}
- to see what topics are updated (edit LocalSite.cfg by hand to add this setting).
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{AttachFilter}
- Regular expression that filters common files that should never be attached to a topic.
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{HideAttachments}
- Boolean default for the hide attribute on new attachments.
-
$Foswiki::cfg{Plugins}{UpdateAttachmentsPlugin}{AttachmentComment}
- String that is set as a comment for each new attachment.
It is strongly recommended to disable
$Foswiki::cfg{AutoAttachPubFiles}
(Foswiki 1.x) or
$Foswiki::cfg{RCS}{AutoAttachPubFiles}
(Foswiki 2.x). The plugin will do so automatically if enabled.
Installation Instructions
You do not need to install anything in the browser to use this extension. The following instructions are for the administrator who installs the extension on the server.
Open configure, and open the "Extensions" section. Use "Find More Extensions" to get a list of available extensions. Select "Install".
If you have any problems, or if the extension isn't available in
configure
, then you can still install manually from the command-line. See
http://foswiki.org/Support/ManuallyInstallingExtensions for more help.
Plugin Info