1: Imports Microsoft.WindowsAzure
2: Imports Microsoft.WindowsAzure.StorageClient
3: Imports Microsoft.WindowsAzure.ServiceRuntime
4:
5: Namespace AzureStorage
6:
7: Public Class BlobUploder
8:
9: #Region "プライベート変数"
10:
11: Private blobStorage As CloudBlobClient
12: Private _connection As Microsoft.WindowsAzure.StorageCredentialsAccountAndKey
13: Private _container As CloudBlobContainer
14: Private _blobName As String
15:
16: #End Region
17:
18: #Region "プロパティ"
19:
20: ' ブロブコンテナ名 コンストラクタ
21: Public WriteOnly Property containerName As String
22: Set(ByVal value As String)
23: _blobName = value
24: End Set
25: End Property
26:
27: #End Region
28:
29: #Region "パブリックプロパティ"
30:
31: '
32: Public Sub New(ByVal account As String, ByVal key As String)
33: _connection = New Microsoft.WindowsAzure.StorageCredentialsAccountAndKey(account, key)
34: End Sub
35:
36: ' ブロブストレージ作成 ブロックブロブへのアップロード
37: Public Sub SetCloudBlobContainer(ByVal blobUri As String)
38:
39: blobStorage = New CloudBlobClient(blobUri, _connection)
40: _container = blobStorage.GetContainerReference(_blobName)
41: _container.CreateIfNotExist()
42:
43: Dim permissions = _container.GetPermissions()
44: permissions.PublicAccess = BlobContainerPublicAccessType.Container
45: _container.SetPermissions(permissions)
46:
47: End Sub
48:
49: '
50: Public Function Upload(ByVal uploadFileUri As String) As Boolean
51:
52: Try
53: Dim name = String.Format("{0:10}_{1}", Date.Now.Ticks, Guid.NewGuid())
54: Dim blob = blobStorage.GetContainerReference(_blobName).GetBlockBlobReference(IO.Path.GetFileName(uploadFileUri))
55:
56:
57: Using fs As New System.IO.FileStream(uploadFileUri, System.IO.FileMode.Open, System.IO.FileAccess.Read)
58:
59: blob.UploadFromStream(fs)
60:
61: End Using
62:
63: Catch
64:
65: Return False
66:
67: End Try
68:
69: Return True
70:
71: End Function
72:
73: #End Region
74:
75: End Class
76:
77: End Namespace