2 cat > /dev
/null
<< EndOfLicence
4 Copyright 2007 Raphael James Cohn
6 Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
7 in compliance with the License.
8 You may obtain a copy of the License at
10 http://www.apache.org/licenses/LICENSE-2.0
12 Unless required by applicable law or agreed to in writing, software distributed under the License
13 is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
14 or implied. See the License for the specific language governing permissions and limitations under
22 function printHelpAndExit
25 printf "%s: version %s\n" "$weAreKnownAs" "$version"
26 printf "Part of s3-bash. Latest version is at %s\n" 'http://code.google.com/p/s3-bash/'
27 printf "Usage %s: -h\n" "$weAreKnownAs"
28 printf "Usage %s: [-vS] [-H file] [-a file] -k key -s file url\n" "$weAreKnownAs"
29 printf " Option\tType\tRequirement\tDescription\n"
30 printf " -h\t\tprecedent\tprint this help\n"
31 printf " -v\t\toptional\tverbose output\n"
32 printf " -k\tstring\tmandatory\tAWS Access Key Id\n"
33 printf " -s\tfile\tmandatory\tAWS Secret Access Key Id File\n"
34 printf " -S\t\toptional\tUse https\n"
35 printf " -H\tfile\toptional\tFile to write response headers to\n"
36 printf " -a\tfile\toptional\tFile to read Amazon custom headers from (X-Amz-Date is not allowed)\n"
37 printf " \turl\tmandatory\trelative url including bucket name and leading slash, eg /bucket/path/to/object?acl. Assumed to be already encoded\n"
40 printf "Specify proxies using a ~/.curlrc file\n"
41 printf "Content is returned on stdout\n"
50 awsAccessSecretKeyIdFile
=""
52 dumpHeaderFile
="/dev/null"
53 amazonHeaderFile
="/dev/null"
54 while getopts "hvk:s:SH:a:" optionName
; do
56 h
) printHelpAndExit
0;;
58 k
) awsAccessKeyId
="$OPTARG";;
59 s
) awsAccessSecretKeyIdFile
="$OPTARG"
60 if [ ! -e "$awsAccessSecretKeyIdFile" ]; then
61 printErrorHelpAndExit
"AWS Secret Key Id file does not exist" $userSpecifiedDataErrorExitCode
64 H
) dumpHeaderFile
="$OPTARG";;
65 a
) amazonHeaderFile
="$OPTARG"
67 [?
]) printErrorHelpAndExit
"Option not recognised" $userSpecifiedDataErrorExitCode;;
70 if [ 1 -eq $OPTIND ]; then
71 printErrorHelpAndExit
"Internal Error: parseOptions or a parent method in the call stack was not called with $"@
"." $internalErrorExitCode
73 let "toShift = $OPTIND - 1"
76 printErrorHelpAndExit
"URL not specified" $userSpecifiedDataErrorExitCode
81 if [ -z "$awsAccessSecretKeyIdFile" ]; then
82 printErrorHelpAndExit
"AWS Secret Access Key file not specified" $userSpecifiedDataErrorExitCode
83 elif [ -z "$awsAccessKeyId" ]; then
84 printErrorHelpAndExit
"AWS Access Key Id not specified" $userSpecifiedDataErrorExitCode
88 function prepareToRunCurl
91 readonly verbToPass
="--get"
92 readonly contentMD5
=""
93 readonly contentType
=""
96 readonly weAreKnownAs
="$(basename $0)"
97 readonly ourPath
="$(dirname $0)"
99 readonly commonFunctions
="$ourPath/s3-common-functions"
100 if [ -e "$commonFunctions" ]; then
101 source "$commonFunctions"
104 invalidEnvironmentExitCode
=4
105 printErrorHelpAndExit
"$weAreKnownAs: Could not locate file s3-common-functions" $invalidEnvironmentExitCode