listen my_cf
bind :80
mode http
reqadd X-Forwarded-Proto:\ https
http-request set-header Host dsomehost.cloudfront.net
server my_cf_pt dsomehost.cloudfront.net:443 ssl sni req.hdr(Host)

rsync -aWhv --no-compress --progress /source/ /destinationfolder/

--no-compress as it's on the same machine
--progress speaks for itself

-a preserves ownership & permissions using archive flag
-W copying whole files only
# and optional ones for watching
-h human-readable transfer rate and file sizes
-v keeps it verbose so we can see whats happening

Test parameters


public string HmacSHA256(string key, string data)
string hash;
ASCIIEncoding encoder = new ASCIIEncoding();
Byte[] code = encoder.GetBytes(key);
using (HMACSHA256 hmac = new HMACSHA256(code))
Byte[] hmBytes = hmac.ComputeHash(encoder.GetBytes(data));
hash = ToHexString(hmBytes);
return hash;

public static string ToHexString(byte[] array)
StringBuilder hex = new StringBuilder(array.Length * 2);
foreach (byte b in array)
hex.AppendFormat("{0:x2}", b);
return hex.ToString();

Python 2.7/3

hmac.new(key.encode('utf-8'), data.encode('utf-8'), hashlib.sha256).hexdigest()

Chris McKee

Engineer. (archived blog posts https://bit.ly/30qrna1)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store