VanillaGranilla icon

uploadToS3.ps1

VanillaGranilla | PRO | 05/23/16 05:33:51 PM UTC | 0 ⭐ | 286 👁️ | Never ⏰ | []
PowerShell |

1.77 KB

|

None

|

0 👍

/

0 👎

#requires -version 4
<#
.SYNOPSIS
  Copies files from a folder recursively to Amazon S3
 
.DESCRIPTION
  Copies files from a folder recursively to Amazon S3.  Note: this script uses the 'archive' attribute to determine if a file has been backed up previously.
 
.INPUTS
  None
 
.OUTPUTS
  None
 
.NOTES
  Version:        1.0
  Author:         Jim Gronowski
  Creation Date:  20160520
  Purpose/Change: Initial script 
  
.EXAMPLE
  None
#>
 
#---------------------------------------------------------[Initialisations]--------------------------------------------------------
 
#Set Error Action to Silently Continue
#$ErrorActionPreference = "SilentlyContinue"
 
 
#----------------------------------------------------------[Declarations]----------------------------------------------------------
 
#Script Version
$sScriptVersion = "1.0"
 
#Source Folder
$sourceFolder = "Z:\BACKUP\"
 
#S3 Bucket Name
$s3bucket = "BUCKET_NAME_HERE"
 
#Folder name (this will be the prefix in the S3 key - like a folder, but not)
$folderName = "FOO"
 
#Array of files, only including SQL backup files.
$files = Get-ChildItem $sourceFolder -Recurse -Include "*.bak", "*.trn"
 
#-----------------------------------------------------------[Execution]------------------------------------------------------------
 
 
 
foreach ($file in $files)
{
    if( $file.attributes -eq "Archive")
    {
        #Copy the file to S3 
        echo "uploading $($folderName)/$($file.name)"
        Write-S3Object -BucketName $s3bucket -File "$($file.FullName)" -Key "$($folderName)/$($file.Name)" -ServerSideEncryption AES256 -StorageClass "STANDARD_IA"
 
 
        #Flip the archive bit so file will not be uploaded again on next run
        $file.Attributes = $file.Attributes -bxor ([System.IO.FileAttributes]::Archive)
    }
}

Comments