项目作者: random82
项目描述 :
Making Azure Blob API more FSharp friendly
高级语言: F#
项目地址: git://github.com/random82/FSharp.Azure.Blob.git
FSharp.Azure.Blob
Usage
Download blob
let readFile containerName blob =
let connString = "UseDevelopmentStorage=true"
let result = connString
|> Blob.fromConnectionString
|> Blob.container containerName
|> Blob.download blob
|> Blob.execAsync<BlobDownloadInfo>
result
let downloadTestJson =
async {
let! blobInfo = readFile "container" "test.json"
use sw = new StreamReader(blobInfo.Value.Content)
sw.ReadToEnd() |> Console.WriteLine
} |> Async.RunSynchronously
Upload blob
let uploadFile containerName file =
let connString = "UseDevelopmentStorage=true"
let result = connString
|> Blob.fromConnectionString
|> Blob.container containerName
|> Blob.upload "test.json" file
|> Blob.overwriteBlob true
|> Blob.createContainer true
|> Blob.execAsync<BlobContentInfo>
result
let uploadTestJson =
use file = File.OpenRead "test.json"
async {
let! blobInfo = uploadFile "container" file
blobInfo.Value.ContentHash
|> BitConverter.ToString
|> Console.WriteLine
} |> Async.RunSynchronously
Delete blob
let deleteFile containerName blob =
let connString = "UseDevelopmentStorage=true"
let result = connString
|> Blob.fromConnectionString
|> Blob.container containerName
|> Blob.delete blob
|> Blob.includeSnapshots true
|> Blob.execAsync<bool>
result
Delete snapshots
let deleteSnapshots containerName blob =
let connString = "UseDevelopmentStorage=true"
let result = connString
|> Blob.fromConnectionString
|> Blob.container containerName
|> Blob.deleteSnapshots blob
|> Blob.execAsync<bool>
result
Check if blob exists
let existsFile containerName blob =
let connString = "UseDevelopmentStorage=true"
let result = connString
|> Blob.fromConnectionString
|> Blob.container containerName
|> Blob.exists blob
|> Blob.execAsync<bool>
result
Development
Sample run in VS Code
- Run Azure Storage Emulator
- Use VSCode to run a sample client
- Check the debug console