项目作者: random82

项目描述 :
Making Azure Blob API more FSharp friendly
高级语言: F#
项目地址: git://github.com/random82/FSharp.Azure.Blob.git
创建时间: 2020-06-24T04:55:18Z
项目社区:https://github.com/random82/FSharp.Azure.Blob

开源协议:MIT License

下载


FSharp.Azure.Blob

Usage

Download blob

  1. let readFile containerName blob =
  2. let connString = "UseDevelopmentStorage=true"
  3. let result = connString
  4. |> Blob.fromConnectionString
  5. |> Blob.container containerName
  6. |> Blob.download blob
  7. |> Blob.execAsync<BlobDownloadInfo>
  8. result
  9. let downloadTestJson =
  10. async {
  11. let! blobInfo = readFile "container" "test.json"
  12. use sw = new StreamReader(blobInfo.Value.Content)
  13. sw.ReadToEnd() |> Console.WriteLine
  14. } |> Async.RunSynchronously

Upload blob

  1. let uploadFile containerName file =
  2. let connString = "UseDevelopmentStorage=true"
  3. let result = connString
  4. |> Blob.fromConnectionString
  5. |> Blob.container containerName
  6. |> Blob.upload "test.json" file
  7. |> Blob.overwriteBlob true
  8. |> Blob.createContainer true
  9. |> Blob.execAsync<BlobContentInfo>
  10. result
  11. let uploadTestJson =
  12. use file = File.OpenRead "test.json"
  13. async {
  14. let! blobInfo = uploadFile "container" file
  15. blobInfo.Value.ContentHash
  16. |> BitConverter.ToString
  17. |> Console.WriteLine
  18. } |> Async.RunSynchronously

Delete blob

  1. let deleteFile containerName blob =
  2. let connString = "UseDevelopmentStorage=true"
  3. let result = connString
  4. |> Blob.fromConnectionString
  5. |> Blob.container containerName
  6. |> Blob.delete blob
  7. |> Blob.includeSnapshots true
  8. |> Blob.execAsync<bool>
  9. result

Delete snapshots

  1. let deleteSnapshots containerName blob =
  2. let connString = "UseDevelopmentStorage=true"
  3. let result = connString
  4. |> Blob.fromConnectionString
  5. |> Blob.container containerName
  6. |> Blob.deleteSnapshots blob
  7. |> Blob.execAsync<bool>
  8. result

Check if blob exists

  1. let existsFile containerName blob =
  2. let connString = "UseDevelopmentStorage=true"
  3. let result = connString
  4. |> Blob.fromConnectionString
  5. |> Blob.container containerName
  6. |> Blob.exists blob
  7. |> Blob.execAsync<bool>
  8. result

Development

Sample run in VS Code

  1. Run Azure Storage Emulator
  2. Use VSCode to run a sample client
  3. Check the debug console