Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

89 lines (70 sloc) 2.877 kb
Param($srcFolderPath, $srcFilename)
#declare named params for ease of calling via command-line
#note: this line is ONLY valid if it is the first line of the file
#PLEASE DO NOT MOVE THE PARAM(...) LINE FROM ITS CURRENT POSITION
# OR THIS SCRIPT WILL BREAK!!!
$credentialsFile = ".\s3-credentials.ps1"
#bail out if the credentials file cannot be found
if (!([IO.File]::Exists($credentialsFile)))
{
Write-Output ("***ERROR: cannot continue without the S3 credentials contained in " + $credentialsFile)
exit 1
}
else
{
. $credentialsFile
}
#CONST values
$key = GetKey
$secret = GetSecret
$uploadFolderPath = "dist.springframework.org/snapshot/SPRNET"
$newline = [Environment]::NewLine
#verify the args aren't null before we proceed
if ((!($srcFolderPath))-or (!($srcFilename)))
{
Write-Output "***ERROR: INVALID ARGUMENTS***"
Write-Output $newline $newline
Write-Output "Correct usage is..."
Write-Output "powershell.exe <scriptname> -srcFolderPath <folderpath> -srcFilename <filename>"
Write-Output $newline
Write-Output "example:"
Write-Output "powershell.exe .\s3upload.ps1 -srcFolderPath c:\uploads -srcFilename FileToUpload.txt"
#exit with exit code 1 (failure) so calling procs can know WTF happened
exit 1
}
#bail out if the source folder cannot be found
if (!([IO.Directory]::Exists($srcFolderPath)))
{
Write-Output "***ERROR***"
Write-Output ("path '" + $srcFolderPath + "' doesn't exist or in inaccessible.")
exit 1
}
#bail out if the source file cannot be found
$fullPathToSourceFile = [IO.Path]::Combine($srcFolderPath, $srcFilename)
if (!([IO.File]::Exists($fullPathToSourceFile)))
{
Write-Output "***ERROR***"
Write-Output ("File '" + $fullPathToSourceFile + "' doesn't exist or in inaccessible.")
exit 1
}
#ensure the CloudBerry Labs snap-ins are loaded before we try to call them...
Add-PSSnapin CloudBerryLab.Explorer.PSSnapIn
#get the connection to s3
Write-Output "Connecting to S3..."
$s3 = Get-CloudS3Connection -Key $key -Secret $secret
Write-Output "...connection successful."
Write-Output $newline
#get a folder object that represents the destination
$destination = $s3 | Select-CloudFolder -Path $uploadFolderPath
#get a folder object that represents the local source folder
$source = Get-CloudFilesystemConnection | Select-CloudFolder $srcFolderPath
#perform the actual copy to s3
Write-Output ("Uploading file '" + $fullPathToSourceFile + "' to S3 path: '" + $uploadFolderPath +"'...")
$source | Copy-CloudItem $destination $srcFilename
Write-Output "...upload successful."
Write-Output $newline
#if we get this far, we should return ERRORCODE 0 so calling procs can know we succeeded
#technically this is redundant, but best to be explicit :)
Write-Output $newline
Write-Output "Exiting Powershell script normally."
exit 0
Jump to Line
Something went wrong with that request. Please try again.