Difference between revisions of "Utilities"
From OpenKM Documentation
(Created page with 'These are OpenKM utilities created by the community.') |
|||
Line 1: | Line 1: | ||
These are OpenKM utilities created by the community. | These are OpenKM utilities created by the community. | ||
+ | |||
+ | == File upload == | ||
+ | <source lang="php"> | ||
+ | <?php | ||
+ | $okmurl="http://localhost:8080/OpenKM/"; | ||
+ | $okmid="username"; | ||
+ | $okmpw="password"; | ||
+ | $impfile = $argv[1]; | ||
+ | |||
+ | $OKMAuth = new SoapClient($okmurl."OKMAuth?wsdl"); | ||
+ | $OKMDocument = new SoapClient($okmurl."OKMDocument?wsdl"); | ||
+ | |||
+ | // open file and encode if necessary | ||
+ | $handle = fopen($impfile,'rb'); | ||
+ | $file_content = fread($handle,filesize($impfile)); | ||
+ | fclose($handle); | ||
+ | $encoded = base64_encode($file_content); | ||
+ | |||
+ | // Login | ||
+ | $token = $OKMAuth->login($okmid, $okmpw); | ||
+ | $OKMDocument->createSimple($token,"/okm:root/file.to.upload",$file_content); | ||
+ | |||
+ | // Logout | ||
+ | $OKMAuth->logout($token); | ||
+ | ?> | ||
+ | </source> | ||
+ | |||
+ | <source lang="bash"> | ||
+ | #!/bin/bash | ||
+ | # JOAKO Import 1.0.0 - Copyright 2011 Andrew Joakimsen | ||
+ | # Distributed under the terms of the GNU General Public | ||
+ | # License Version 2 and no future versions. | ||
+ | # | ||
+ | # Script to import files into OpenKM and report error/success. | ||
+ | # Requires the PHP import script written by snowman, with a | ||
+ | # few small tweaks. | ||
+ | |||
+ | ################################### | ||
+ | ### ### | ||
+ | ### C O N F I G U R A T I O N ### | ||
+ | ### ### | ||
+ | ################################### | ||
+ | |||
+ | # OpenKM directory where files are imported to | ||
+ | OKM_IMPORT_DIR=NEW | ||
+ | |||
+ | # Filesystem directory (no trailing slash) where we put imported files (it will be created) | ||
+ | STORE_DIR=~/we-test | ||
+ | |||
+ | # Filesystem directory (no trailing slash) where we put files that encountered import errors | ||
+ | ERROR_STORE_DIR=~/error-test | ||
+ | |||
+ | #################################### | ||
+ | # First let's see if the runtime condition is sane | ||
+ | if [ -z "$1" ]; then | ||
+ | echo "JOAKO Import: Missing file name" | ||
+ | echo "Usage: import.sh [filename] [target-directory]" | ||
+ | exit 1 | ||
+ | fi | ||
+ | |||
+ | # If ARG1 is a real file | ||
+ | if [ -d "$1" ]; then | ||
+ | echo "ERROR: \"$1\" is a directory!" | ||
+ | exit 1 | ||
+ | fi | ||
+ | if [ ! -f "$1" ]; then | ||
+ | echo "ERROR: \"$1\" Invalid file name " | ||
+ | exit 1 | ||
+ | else | ||
+ | INFILE=$1 | ||
+ | fi | ||
+ | |||
+ | # Check if OKM_IMPORT_DIR was passed as argument | ||
+ | if [ -z "$2" ]; then | ||
+ | OKM_DIR=$OKM_IMPORT_DIR | ||
+ | else | ||
+ | OKM_DIR=$2 | ||
+ | fi | ||
+ | |||
+ | # Check if the imported files directory exsists | ||
+ | if [ ! -d $STORE_DIR/$OKM_DIR ]; then | ||
+ | if [ ! -d ~/$STORE_DIR ]; then | ||
+ | mkdir $STORE_DIR | ||
+ | fi | ||
+ | mkdir $STORE_DIR/$OKM_DIR | ||
+ | fi | ||
+ | |||
+ | # Run the import Process | ||
+ | RESULT=$(php /opt/openkm/import.php $INFILE ${INFILE##*/} $OKM_DIR 2>&1) | ||
+ | RESULTCODE=$? | ||
+ | |||
+ | # Deal with the consequences | ||
+ | function importer-error { | ||
+ | # Check if the import error directory exsists | ||
+ | if [ ! -d $ERROR_STORE_DIR/$OKM_DIR ]; then | ||
+ | if [ ! -d $ERROR_STORE_DIR ]; then | ||
+ | mkdir $ERROR_STORE_DIR | ||
+ | fi | ||
+ | mkdir $ERROR_STORE_DIR/$OKM_DIR | ||
+ | fi | ||
+ | echo "`date` JOAKO Import Encountered an error type $RESULTCODE." | ||
+ | echo "$RESULT" | ||
+ | mv $INFILE $ERROR_STORE_DIR/$OKM_DIR &> /dev/null | ||
+ | exit $? | ||
+ | } | ||
+ | |||
+ | if [ $RESULTCODE -ne 0 ]; then # There was an error | ||
+ | importer-error | ||
+ | else # We check further | ||
+ | if [ -n "$RESULT" ]; then # There was an error | ||
+ | importer-error | ||
+ | else # No error detected | ||
+ | echo "`date` JOAKO Import: Imported file [${INFILE##*/}] to [$OKM_DIR] directory" | ||
+ | mv $INFILE $STORE_DIR/$OKM_DIR &> /dev/null | ||
+ | exit 0 | ||
+ | fi | ||
+ | fi | ||
+ | </source> |
Revision as of 19:48, 30 March 2011
These are OpenKM utilities created by the community.
File upload
<?php
$okmurl="http://localhost:8080/OpenKM/";
$okmid="username";
$okmpw="password";
$impfile = $argv[1];
$OKMAuth = new SoapClient($okmurl."OKMAuth?wsdl");
$OKMDocument = new SoapClient($okmurl."OKMDocument?wsdl");
// open file and encode if necessary
$handle = fopen($impfile,'rb');
$file_content = fread($handle,filesize($impfile));
fclose($handle);
$encoded = base64_encode($file_content);
// Login
$token = $OKMAuth->login($okmid, $okmpw);
$OKMDocument->createSimple($token,"/okm:root/file.to.upload",$file_content);
// Logout
$OKMAuth->logout($token);
?>
#!/bin/bash
# JOAKO Import 1.0.0 - Copyright 2011 Andrew Joakimsen
# Distributed under the terms of the GNU General Public
# License Version 2 and no future versions.
#
# Script to import files into OpenKM and report error/success.
# Requires the PHP import script written by snowman, with a
# few small tweaks.
###################################
### ###
### C O N F I G U R A T I O N ###
### ###
###################################
# OpenKM directory where files are imported to
OKM_IMPORT_DIR=NEW
# Filesystem directory (no trailing slash) where we put imported files (it will be created)
STORE_DIR=~/we-test
# Filesystem directory (no trailing slash) where we put files that encountered import errors
ERROR_STORE_DIR=~/error-test
####################################
# First let's see if the runtime condition is sane
if [ -z "$1" ]; then
echo "JOAKO Import: Missing file name"
echo "Usage: import.sh [filename] [target-directory]"
exit 1
fi
# If ARG1 is a real file
if [ -d "$1" ]; then
echo "ERROR: \"$1\" is a directory!"
exit 1
fi
if [ ! -f "$1" ]; then
echo "ERROR: \"$1\" Invalid file name "
exit 1
else
INFILE=$1
fi
# Check if OKM_IMPORT_DIR was passed as argument
if [ -z "$2" ]; then
OKM_DIR=$OKM_IMPORT_DIR
else
OKM_DIR=$2
fi
# Check if the imported files directory exsists
if [ ! -d $STORE_DIR/$OKM_DIR ]; then
if [ ! -d ~/$STORE_DIR ]; then
mkdir $STORE_DIR
fi
mkdir $STORE_DIR/$OKM_DIR
fi
# Run the import Process
RESULT=$(php /opt/openkm/import.php $INFILE ${INFILE##*/} $OKM_DIR 2>&1)
RESULTCODE=$?
# Deal with the consequences
function importer-error {
# Check if the import error directory exsists
if [ ! -d $ERROR_STORE_DIR/$OKM_DIR ]; then
if [ ! -d $ERROR_STORE_DIR ]; then
mkdir $ERROR_STORE_DIR
fi
mkdir $ERROR_STORE_DIR/$OKM_DIR
fi
echo "`date` JOAKO Import Encountered an error type $RESULTCODE."
echo "$RESULT"
mv $INFILE $ERROR_STORE_DIR/$OKM_DIR &> /dev/null
exit $?
}
if [ $RESULTCODE -ne 0 ]; then # There was an error
importer-error
else # We check further
if [ -n "$RESULT" ]; then # There was an error
importer-error
else # No error detected
echo "`date` JOAKO Import: Imported file [${INFILE##*/}] to [$OKM_DIR] directory"
mv $INFILE $STORE_DIR/$OKM_DIR &> /dev/null
exit 0
fi
fi