mirror of https://github.com/pulumi/pulumi.git
97 lines
2.6 KiB
C#
97 lines
2.6 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Security.Cryptography;
|
|
using System.Text;
|
|
using Pulumi;
|
|
using Aws = Pulumi.Aws;
|
|
|
|
|
|
string ComputeFileBase64Sha256(string path)
|
|
{
|
|
var fileData = Encoding.UTF8.GetBytes(File.ReadAllText(path));
|
|
var hashData = SHA256.Create().ComputeHash(fileData);
|
|
return Convert.ToBase64String(hashData);
|
|
}
|
|
|
|
|
|
string ComputeSHA1(string input)
|
|
{
|
|
var hash = SHA1.Create().ComputeHash(Encoding.UTF8.GetBytes(input));
|
|
return BitConverter.ToString(hash).Replace("-","").ToLowerInvariant();
|
|
}
|
|
|
|
|
|
string ReadFileBase64(string path)
|
|
{
|
|
return Convert.ToBase64String(Encoding.UTF8.GetBytes(File.ReadAllText(path)));
|
|
}
|
|
|
|
return await Deployment.RunAsync(() =>
|
|
{
|
|
var encoded = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes("haha business"));
|
|
|
|
var decoded = System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(encoded));
|
|
|
|
var joined = string.Join("-", new[]
|
|
{
|
|
encoded,
|
|
decoded,
|
|
"2",
|
|
});
|
|
|
|
// tests that we initialize "var, err" with ":=" first, then "=" subsequently (Go specific)
|
|
var zone = Aws.GetAvailabilityZones.Invoke();
|
|
|
|
var zone2 = Aws.GetAvailabilityZones.Invoke();
|
|
|
|
var bucket = new Aws.S3.Bucket("bucket");
|
|
|
|
var encoded2 = bucket.Id.Apply(id => Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(id)));
|
|
|
|
var decoded2 = bucket.Id.Apply(id => System.Text.Encoding.UTF8.GetString(Convert.FromBase64String(id)));
|
|
|
|
var secretValue = Output.CreateSecret("hello");
|
|
|
|
var plainValue = Output.Unsecret(secretValue);
|
|
|
|
var currentStack = Deployment.Instance.StackName;
|
|
|
|
var currentProject = Deployment.Instance.ProjectName;
|
|
|
|
var workingDirectory = Directory.GetCurrentDirectory();
|
|
|
|
var fileMimeType = "TODO: call mimeType";
|
|
|
|
// using the filebase64 function
|
|
var first = new Aws.S3.BucketObject("first", new()
|
|
{
|
|
Bucket = bucket.Id,
|
|
Source = new StringAsset(ReadFileBase64("./base64.txt")),
|
|
ContentType = fileMimeType,
|
|
Tags =
|
|
{
|
|
{ "stack", currentStack },
|
|
{ "project", currentProject },
|
|
{ "cwd", workingDirectory },
|
|
},
|
|
});
|
|
|
|
// using the filebase64sha256 function
|
|
var second = new Aws.S3.BucketObject("second", new()
|
|
{
|
|
Bucket = bucket.Id,
|
|
Source = new StringAsset(ComputeFileBase64Sha256("./base64.txt")),
|
|
});
|
|
|
|
// using the sha1 function
|
|
var third = new Aws.S3.BucketObject("third", new()
|
|
{
|
|
Bucket = bucket.Id,
|
|
Source = new StringAsset(ComputeSHA1("content")),
|
|
});
|
|
|
|
});
|
|
|