NOTE: This feature is exposed to BYOS and Enterprise licensed workspaces only.
This guide walks through how to setup a publishing workflow within your accsyn Workspace
Common in media production is the need to work with external vendors, the accsyn File Sharing feature is ideal for setting up shared folders to distribute work assets and also receive the final work done.
accsyn Publish is a special uploader that adds a layer of validation and also facilitates automated ingest of material into the production system. This is a huge time saver as it eliminates a lot of manual work and brings your external vendors closer to production - as if they were a part of your in-house team.
Publish is driven by the accsyn Hooks subsystem.
The remote user logs on the desktop app, choose the publish option and drops the files on to the publish area.
What happens is that accsyn reads the full list of filenames, folders and file size. The script configured for pre-publish-server hook is then run on your server, allowing you to validate the file list and give feedback to the user - this is before any file is uploaded.
The pre publish script can:
Detect if any required files are missing.
If file sets are incomplete
If files has the wrong naming convention
File sizes does not add up.
The user will then be presented feedback, for each item - typically a folder per task in a post production workflow. If all is greenlit, the user will be able to publish the files.
The pre-publish provides the path to were files will be uploaded, this way you can steer exactly were files will end up - typically a staging area for further ingestion.
When the files are uploaded, the publish-server hook is run with the same payload as provided to the pre-publish-server hook with output paths amended. With this script you can then further ingest the files into your system, for example submit a Quicktime proxy movie transcode job to a render farm and publish a version to a shot tracking system such as ftrack, flow or sheets.
The publish feature is 100% code driven, you will need Python developer experience. Luckily, we provide production ready template scripts on our public Github that you should be able do download and augment:
Note: In this guide we assume your publish scripts will be written in Python, and is deployed on a Linux server.
What you need to setup publish:
An accsyn server, be it the main storage server or a separate server wher you already have configured hooks to run.
Python installed at the server.
(Optional) A pyenv designated to run the scripts, providing additional dependencies.
Administrator login to accsyn
Implement the initial pre publish python script.
Store the script on the server, for example /mnt/pipeline/accsyn_scripts/pre_publish.py.
Logon to accsyn.io/admin/settings as an administrator and go to Publish tab.
Check Enable publish, it will give an alert that publish hooks are not setup which is fine.
Go to Hooks tab and edit the Hook configuration.
Go to pre-publish-server tab and locate the script entry that corresponds to the operating system server is running.
Enter the script command line, for example "python3 /mnt/pipeline/accsyn_scripts/pre_publish.py ${PATH_JSON_INPUT} ${PATH_JSON_OUTPUT}" (replace python3 with full path to venv executable if applicable).
Click save.
Important notes:
The expression ${PATH_JSON_INPUT} will be replaced in runtime with path to the JSON data file (located in default accsyn temp location). Setup your script to read publish data from this path (sys.argv[1]).
${PATH_JSON_OUTPUT} will point to a JSON output file where your script is expected to save the data returned to user accsyn desktop app. Setup your script to output data this path (sys.argv[2]).
Try to make the script fairly quick to execute, maximum 30s, not to keep the remote user wait to long for the response.
Now test the pre publish hook by publishing a file and or folder, the stdout and stderr of hook execution are streamed to the standard accsyn server log (located at /var/log/accsyn on Linux). Iterate implementation of the pre publish script until the desired validation process is solid.
This is an optional step, and can be left out if no post processing of files are needed on arrival.
Develop the initial publish script.
Store the script on the server, for example /mnt/pipeline/accsyn_scripts/publish.py.
Logon to accsyn.io/admin/settings as an administrator and go to Hooks tab and edit the Hook configuration.
Go to publish-server tab and locate the script entry that corresponds to the operating system server is running.
Enter the script command line, for example "python3 /mnt/pipeline/accsyn_scripts/publish.py ${PATH_JSON_INPUT}" (replace python3 with full path to venv executable if applicable).
Click save.
Important notes:
The expression ${PATH_JSON_INPUT} will be replaced in runtime with path to the JSON data file (located in default accsyn temp location). Setup your script to read publish data from this path (sys.argv[1]).
The script should not execute long running tasks, it is best practice to run such tasks by a background process executor server like a render farm or similar.
Now publish a file and test the publish script, the stdout and stderr of hook execution are streamed to the standard accsyn server log (located at /var/log/accsyn on Linux). Iterate implementation of the pre publish script until the desired validation process is solid. You do not need to publish a new file each iteration, simply run the script manually in a shell session based on the command line output in log file.