Stowage ํƒ์ƒ‰ | Dane Vinson

Stowage๋Š” IFileStorage๋ผ๋Š” ์ถ”์ƒํ™” ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ฐ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์•„๋ฆ„๋‹ต๊ฒŒ ์ถ”์ƒํ™” ํ•ฉ๋‹ˆ๋‹ค.

์šฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

using (IFileStorage fileStorage = Files.Of.{storage_provider}(string arg1,...))  
{
   await fileStorage.{action_method};
}

์˜ˆ๋ฅผ ๋“ค์–ด Azure Blob Storage์—์„œ IFileStorage๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฒƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

var fileStorage = Files.Of.AzureBlobStorage(string "{account}", string "{key}");  

2๊ฐœ์˜ ์ข‹์•„์š”

๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๋งŒ๋“ค์–ด์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.
์„ฑ๋Šฅ ํ‰๊ฐ€๋„ ํ•ด๋ด์•ผ ๊ฒ ์ง€๋งŒ ์ผ๋‹จ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ๊ฐ„๋‹จํ•ด์„œ ์ข‹๋„ค์š”.

Storage.Net์„ ๋งŒ๋“œ์‹  ๋ถ„์ด๋ผ ๋ฏฟ์Œ์ด ๊ฐ‘๋‹ˆ๋‹ค.

using Stowage;

using System.Text;

Console.WriteLine("Storage Test");

using var ms = Files.Of.InternalMemory();

await ms.WriteText(@"test/test.txt", "test", Encoding.UTF8);

//var list = await fs.Ls();
//foreach (var item in list)
//{
//    Console.WriteLine(item.Name);
//    using var fss = await fs.OpenRead(item.Path);
//    using var mss = await ms.OpenWrite(item.Path, WriteMode.CreateNew);

//    await fss.CopyToAsync(mss);
//}

foreach (var item in await ms.Ls(recurse: true))
{
    Console.WriteLine(item);
}

var text = await ms.ReadText("test/test.txt", Encoding.UTF8);
Console.WriteLine($"Read Text: {text}");

await ms.Rm("/test/", recurse: true);

foreach (var item in await ms.Ls(recurse: true))
{
    Console.WriteLine(item);
}

| ๊ฒฐ๊ณผ

Storage Test
/test/test.txt
/test/
Read Text: test
2๊ฐœ์˜ ์ข‹์•„์š”

์˜คโ€ฆ ์ด๊ฑด ์ข‹์•„๋ณด์ด๋„ค์š”โ€ฆ!
์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์—์„œ ์˜์กด์„ฑ์„ ๋ฒ—์–ด๋‚˜์•ผ ํ•  ๊ฒฝ์šฐ ๊ณ ๋ คํ•ด๋ณผ ์ˆ˜ ์žˆ์„๋งŒํ•œ ๊ฒƒ ๊ฐ™์•„์š”!

3๊ฐœ์˜ ์ข‹์•„์š”