root / trunk / Pithos.Network / ICloudClient.cs @ 759bd3c4
History | View | Annotate | Download (14.6 kB)
1 | 255f5f86 | Panagiotis Kanavos | #region |
---|---|---|---|
2 | 255f5f86 | Panagiotis Kanavos | /* ----------------------------------------------------------------------- |
3 | 255f5f86 | Panagiotis Kanavos | * <copyright file="ICloudClient.cs" company="GRNet"> |
4 | 255f5f86 | Panagiotis Kanavos | * |
5 | 255f5f86 | Panagiotis Kanavos | * Copyright 2011-2012 GRNET S.A. All rights reserved. |
6 | 255f5f86 | Panagiotis Kanavos | * |
7 | 255f5f86 | Panagiotis Kanavos | * Redistribution and use in source and binary forms, with or |
8 | 255f5f86 | Panagiotis Kanavos | * without modification, are permitted provided that the following |
9 | 255f5f86 | Panagiotis Kanavos | * conditions are met: |
10 | 255f5f86 | Panagiotis Kanavos | * |
11 | 255f5f86 | Panagiotis Kanavos | * 1. Redistributions of source code must retain the above |
12 | 255f5f86 | Panagiotis Kanavos | * copyright notice, this list of conditions and the following |
13 | 255f5f86 | Panagiotis Kanavos | * disclaimer. |
14 | 255f5f86 | Panagiotis Kanavos | * |
15 | 255f5f86 | Panagiotis Kanavos | * 2. Redistributions in binary form must reproduce the above |
16 | 255f5f86 | Panagiotis Kanavos | * copyright notice, this list of conditions and the following |
17 | 255f5f86 | Panagiotis Kanavos | * disclaimer in the documentation and/or other materials |
18 | 255f5f86 | Panagiotis Kanavos | * provided with the distribution. |
19 | 255f5f86 | Panagiotis Kanavos | * |
20 | 255f5f86 | Panagiotis Kanavos | * |
21 | 255f5f86 | Panagiotis Kanavos | * THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS |
22 | 255f5f86 | Panagiotis Kanavos | * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
23 | 255f5f86 | Panagiotis Kanavos | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
24 | 255f5f86 | Panagiotis Kanavos | * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR |
25 | 255f5f86 | Panagiotis Kanavos | * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
26 | 255f5f86 | Panagiotis Kanavos | * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
27 | 255f5f86 | Panagiotis Kanavos | * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF |
28 | 255f5f86 | Panagiotis Kanavos | * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED |
29 | 255f5f86 | Panagiotis Kanavos | * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT |
30 | 255f5f86 | Panagiotis Kanavos | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN |
31 | 255f5f86 | Panagiotis Kanavos | * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
32 | 255f5f86 | Panagiotis Kanavos | * POSSIBILITY OF SUCH DAMAGE. |
33 | 255f5f86 | Panagiotis Kanavos | * |
34 | 255f5f86 | Panagiotis Kanavos | * The views and conclusions contained in the software and |
35 | 255f5f86 | Panagiotis Kanavos | * documentation are those of the authors and should not be |
36 | 255f5f86 | Panagiotis Kanavos | * interpreted as representing official policies, either expressed |
37 | 255f5f86 | Panagiotis Kanavos | * or implied, of GRNET S.A. |
38 | 255f5f86 | Panagiotis Kanavos | * </copyright> |
39 | 255f5f86 | Panagiotis Kanavos | * ----------------------------------------------------------------------- |
40 | 255f5f86 | Panagiotis Kanavos | */ |
41 | 255f5f86 | Panagiotis Kanavos | #endregion |
42 | 255f5f86 | Panagiotis Kanavos | using System; |
43 | d78cbf09 | Panagiotis Kanavos | using System.Collections.Generic; |
44 | d78cbf09 | Panagiotis Kanavos | using System.Diagnostics.Contracts; |
45 | 65282d58 | Panagiotis Kanavos | using System.Net; |
46 | b5061ac8 | Panagiotis Kanavos | using System.Threading.Tasks; |
47 | 1caef52e | Panagiotis Kanavos | using Pithos.Interfaces; |
48 | d78cbf09 | Panagiotis Kanavos | |
49 | 1caef52e | Panagiotis Kanavos | namespace Pithos.Network |
50 | d78cbf09 | Panagiotis Kanavos | { |
51 | d78cbf09 | Panagiotis Kanavos | [ContractClass(typeof(ICloudClientContract))] |
52 | d78cbf09 | Panagiotis Kanavos | public interface ICloudClient |
53 | d78cbf09 | Panagiotis Kanavos | { |
54 | c53aa229 | Panagiotis Kanavos | |
55 | d78cbf09 | Panagiotis Kanavos | string ApiKey { get; set; } |
56 | d78cbf09 | Panagiotis Kanavos | string UserName { get; set; } |
57 | b6c72f62 | Panagiotis Kanavos | Uri StorageUrl { get; set; } |
58 | c53aa229 | Panagiotis Kanavos | |
59 | d78cbf09 | Panagiotis Kanavos | string Token { get; set; } |
60 | c53aa229 | Panagiotis Kanavos | |
61 | 2c053915 | Panagiotis Kanavos | bool UsePithos { get; set; } |
62 | c53aa229 | Panagiotis Kanavos | AccountInfo Authenticate(); |
63 | 34bdb91d | Panagiotis Kanavos | //WebProxy Proxy { get; set; } |
64 | b5061ac8 | Panagiotis Kanavos | double DownloadPercentLimit { get; set; } |
65 | b5061ac8 | Panagiotis Kanavos | double UploadPercentLimit { get; set; } |
66 | 79736291 | Panagiotis Kanavos | string AuthenticationUrl { get; set; } |
67 | 79736291 | Panagiotis Kanavos | |
68 | cfed7823 | Panagiotis Kanavos | #region Container operations |
69 | c53aa229 | Panagiotis Kanavos | |
70 | c53aa229 | Panagiotis Kanavos | IList<ContainerInfo> ListContainers(string account); |
71 | cfed7823 | Panagiotis Kanavos | IList<ObjectInfo> ListObjects(string account, string container, DateTime? since = null); |
72 | cfed7823 | Panagiotis Kanavos | IList<ObjectInfo> ListObjects(string account, string container, string folder, DateTime? since = null); |
73 | cfed7823 | Panagiotis Kanavos | bool ContainerExists(string account, string container); |
74 | cfed7823 | Panagiotis Kanavos | ContainerInfo GetContainerInfo(string account, string container); |
75 | cfed7823 | Panagiotis Kanavos | void CreateContainer(string account, string container); |
76 | cfed7823 | Panagiotis Kanavos | void DeleteContainer(string account, string container); |
77 | cfed7823 | Panagiotis Kanavos | #endregion |
78 | cfed7823 | Panagiotis Kanavos | |
79 | cfed7823 | Panagiotis Kanavos | #region Object operations |
80 | cfed7823 | Panagiotis Kanavos | Task GetObject(string account, string container, string objectName, string fileName); |
81 | 4f6d51d4 | Panagiotis Kanavos | Task PutObject(string account, string container, string objectName, string fileName, string hash = null, string contentType = "application/octet-stream"); |
82 | c53aa229 | Panagiotis Kanavos | void DeleteObject(string account, string container, string objectName); |
83 | cfed7823 | Panagiotis Kanavos | //void DeleteObject(string container, string objectName, string account = null); |
84 | cfed7823 | Panagiotis Kanavos | void MoveObject(string account, string sourceContainer, string oldObjectName, string targetContainer, string newObjectName); |
85 | cfed7823 | Panagiotis Kanavos | bool ObjectExists(string account, string container, string objectName); |
86 | cfed7823 | Panagiotis Kanavos | ObjectInfo GetObjectInfo(string account, string container, string objectName); |
87 | cfed7823 | Panagiotis Kanavos | void CreateFolder(string account, string container, string folder); |
88 | cfed7823 | Panagiotis Kanavos | #endregion |
89 | cfed7823 | Panagiotis Kanavos | |
90 | cfed7823 | Panagiotis Kanavos | #region Hashmap operations |
91 | cfed7823 | Panagiotis Kanavos | Task<TreeHash> GetHashMap(string account, string container, string objectName); |
92 | cfed7823 | Panagiotis Kanavos | Task<IList<string>> PutHashMap(string account, string container, string objectName, TreeHash hash); |
93 | cfed7823 | Panagiotis Kanavos | Task PostBlock(string account, string container, byte[] block, int offset, int count); |
94 | cfed7823 | Panagiotis Kanavos | Task<byte[]> GetBlock(string account, string container, Uri relativeUrl, long start, long? end); |
95 | cfed7823 | Panagiotis Kanavos | #endregion |
96 | cfed7823 | Panagiotis Kanavos | |
97 | cfed7823 | Panagiotis Kanavos | #region Sharing operations |
98 | cfed7823 | Panagiotis Kanavos | IList<ObjectInfo> ListSharedObjects(DateTime? since); |
99 | cfed7823 | Panagiotis Kanavos | void ShareObject(string account, string container, string objectName, string shareTo, bool read, bool write); |
100 | cfed7823 | Panagiotis Kanavos | |
101 | cfed7823 | Panagiotis Kanavos | #endregion |
102 | 0bd56b7c | Panagiotis Kanavos | |
103 | 0bd56b7c | Panagiotis Kanavos | AccountInfo GetAccountPolicies(AccountInfo accountInfo); |
104 | aba9e6d9 | Panagiotis Kanavos | |
105 | aba9e6d9 | Panagiotis Kanavos | void UpdateMetadata(ObjectInfo objectInfo); |
106 | c92e02f3 | Panagiotis Kanavos | |
107 | c92e02f3 | Panagiotis Kanavos | void UpdateMetadata(ContainerInfo Container); |
108 | 759bd3c4 | Panagiotis Kanavos | IList<ShareAccountInfo> ListSharingAccounts(DateTime? since=null); |
109 | d78cbf09 | Panagiotis Kanavos | } |
110 | d78cbf09 | Panagiotis Kanavos | |
111 | d78cbf09 | Panagiotis Kanavos | |
112 | d78cbf09 | Panagiotis Kanavos | [ContractClassFor(typeof(ICloudClient))] |
113 | d78cbf09 | Panagiotis Kanavos | public abstract class ICloudClientContract:ICloudClient |
114 | d78cbf09 | Panagiotis Kanavos | { |
115 | c53aa229 | Panagiotis Kanavos | |
116 | d78cbf09 | Panagiotis Kanavos | public string ApiKey { get; set; } |
117 | d78cbf09 | Panagiotis Kanavos | public string UserName { get; set; } |
118 | b6c72f62 | Panagiotis Kanavos | public Uri StorageUrl { get; set; } |
119 | d78cbf09 | Panagiotis Kanavos | public string Token { get; set; } |
120 | 34bdb91d | Panagiotis Kanavos | |
121 | b5061ac8 | Panagiotis Kanavos | public double DownloadPercentLimit { get; set; } |
122 | b5061ac8 | Panagiotis Kanavos | public double UploadPercentLimit { get; set; } |
123 | d78cbf09 | Panagiotis Kanavos | |
124 | 79736291 | Panagiotis Kanavos | public string AuthenticationUrl { get; set; } |
125 | 79736291 | Panagiotis Kanavos | |
126 | 2c053915 | Panagiotis Kanavos | public bool UsePithos { get; set; } |
127 | 2c053915 | Panagiotis Kanavos | |
128 | c53aa229 | Panagiotis Kanavos | public AccountInfo Authenticate() |
129 | d78cbf09 | Panagiotis Kanavos | { |
130 | c53aa229 | Panagiotis Kanavos | Contract.Requires<ArgumentNullException>(!String.IsNullOrWhiteSpace(ApiKey), "ApiKey must be filled before calling Authenticate"); |
131 | c53aa229 | Panagiotis Kanavos | Contract.Requires<ArgumentNullException>(!String.IsNullOrWhiteSpace(UserName), "UserName must be filled before calling Authenticate"); |
132 | d78cbf09 | Panagiotis Kanavos | |
133 | c53aa229 | Panagiotis Kanavos | return default(AccountInfo); |
134 | d78cbf09 | Panagiotis Kanavos | } |
135 | d78cbf09 | Panagiotis Kanavos | |
136 | c53aa229 | Panagiotis Kanavos | public IList<ContainerInfo> ListContainers(string account) |
137 | d78cbf09 | Panagiotis Kanavos | { |
138 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
139 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
140 | d78cbf09 | Panagiotis Kanavos | |
141 | d78cbf09 | Panagiotis Kanavos | return default(IList<ContainerInfo>); |
142 | d78cbf09 | Panagiotis Kanavos | } |
143 | d78cbf09 | Panagiotis Kanavos | |
144 | cfed7823 | Panagiotis Kanavos | public IList<ObjectInfo> ListSharedObjects(DateTime? since) |
145 | cfed7823 | Panagiotis Kanavos | { |
146 | c53aa229 | Panagiotis Kanavos | |
147 | c53aa229 | Panagiotis Kanavos | |
148 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
149 | cfed7823 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
150 | cfed7823 | Panagiotis Kanavos | |
151 | cfed7823 | Panagiotis Kanavos | return default(IList<ObjectInfo>); |
152 | cfed7823 | Panagiotis Kanavos | } |
153 | cfed7823 | Panagiotis Kanavos | |
154 | cfed7823 | Panagiotis Kanavos | public void ShareObject(string account, string container, string objectName, string shareTo, bool read, bool write) |
155 | cfed7823 | Panagiotis Kanavos | { |
156 | c53aa229 | Panagiotis Kanavos | |
157 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
158 | cfed7823 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
159 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
160 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
161 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(account)); |
162 | cfed7823 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(shareTo)); |
163 | cfed7823 | Panagiotis Kanavos | |
164 | cfed7823 | Panagiotis Kanavos | } |
165 | cfed7823 | Panagiotis Kanavos | |
166 | 0bd56b7c | Panagiotis Kanavos | public AccountInfo GetAccountPolicies(AccountInfo accountInfo) |
167 | 0bd56b7c | Panagiotis Kanavos | { |
168 | 0bd56b7c | Panagiotis Kanavos | Contract.Requires(accountInfo!=null); |
169 | 0bd56b7c | Panagiotis Kanavos | |
170 | 0bd56b7c | Panagiotis Kanavos | return default(AccountInfo); |
171 | 0bd56b7c | Panagiotis Kanavos | } |
172 | 0bd56b7c | Panagiotis Kanavos | |
173 | aba9e6d9 | Panagiotis Kanavos | public void UpdateMetadata(ObjectInfo objectInfo) |
174 | aba9e6d9 | Panagiotis Kanavos | { |
175 | aba9e6d9 | Panagiotis Kanavos | Contract.Requires(objectInfo!=null); |
176 | aba9e6d9 | Panagiotis Kanavos | |
177 | aba9e6d9 | Panagiotis Kanavos | return ; |
178 | aba9e6d9 | Panagiotis Kanavos | } |
179 | c92e02f3 | Panagiotis Kanavos | |
180 | c92e02f3 | Panagiotis Kanavos | public void UpdateMetadata(ContainerInfo objectInfo) |
181 | c92e02f3 | Panagiotis Kanavos | { |
182 | c92e02f3 | Panagiotis Kanavos | Contract.Requires(objectInfo!=null); |
183 | c92e02f3 | Panagiotis Kanavos | |
184 | c92e02f3 | Panagiotis Kanavos | return ; |
185 | c92e02f3 | Panagiotis Kanavos | } |
186 | aba9e6d9 | Panagiotis Kanavos | |
187 | 759bd3c4 | Panagiotis Kanavos | public IList<ShareAccountInfo> ListSharingAccounts(DateTime? since = new DateTime?()) |
188 | 759bd3c4 | Panagiotis Kanavos | { |
189 | 759bd3c4 | Panagiotis Kanavos | return default(IList<ShareAccountInfo>); |
190 | 759bd3c4 | Panagiotis Kanavos | } |
191 | 759bd3c4 | Panagiotis Kanavos | |
192 | cfed7823 | Panagiotis Kanavos | |
193 | cfed7823 | Panagiotis Kanavos | public IList<ObjectInfo> ListObjects(string account, string container, DateTime? since = null) |
194 | d78cbf09 | Panagiotis Kanavos | { |
195 | c53aa229 | Panagiotis Kanavos | |
196 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
197 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
198 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
199 | d78cbf09 | Panagiotis Kanavos | |
200 | d78cbf09 | Panagiotis Kanavos | return default(IList<ObjectInfo>); |
201 | d78cbf09 | Panagiotis Kanavos | } |
202 | 9c4346c9 | Panagiotis Kanavos | |
203 | cfed7823 | Panagiotis Kanavos | public IList<ObjectInfo> ListObjects(string account, string container, string folder, DateTime? since = null) |
204 | 637bc368 | Panagiotis Kanavos | { |
205 | c53aa229 | Panagiotis Kanavos | |
206 | 637bc368 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
207 | 637bc368 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
208 | 637bc368 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
209 | 93dc3a84 | Panagiotis Kanavos | //Contract.Requires(!String.IsNullOrWhiteSpace(folder)); |
210 | 637bc368 | Panagiotis Kanavos | |
211 | 637bc368 | Panagiotis Kanavos | return default(IList<ObjectInfo>); |
212 | 637bc368 | Panagiotis Kanavos | } |
213 | d78cbf09 | Panagiotis Kanavos | |
214 | cfed7823 | Panagiotis Kanavos | public bool ContainerExists(string account, string container) |
215 | d78cbf09 | Panagiotis Kanavos | { |
216 | c53aa229 | Panagiotis Kanavos | |
217 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
218 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
219 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
220 | d78cbf09 | Panagiotis Kanavos | |
221 | d78cbf09 | Panagiotis Kanavos | return default(bool); |
222 | d78cbf09 | Panagiotis Kanavos | } |
223 | d78cbf09 | Panagiotis Kanavos | |
224 | cfed7823 | Panagiotis Kanavos | public ContainerInfo GetContainerInfo(string account, string container) |
225 | d78cbf09 | Panagiotis Kanavos | { |
226 | c53aa229 | Panagiotis Kanavos | |
227 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
228 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
229 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
230 | d78cbf09 | Panagiotis Kanavos | |
231 | d78cbf09 | Panagiotis Kanavos | return default(ContainerInfo); |
232 | d78cbf09 | Panagiotis Kanavos | } |
233 | d78cbf09 | Panagiotis Kanavos | |
234 | cfed7823 | Panagiotis Kanavos | public void CreateContainer(string account, string container) |
235 | d78cbf09 | Panagiotis Kanavos | { |
236 | c53aa229 | Panagiotis Kanavos | |
237 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
238 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
239 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
240 | d78cbf09 | Panagiotis Kanavos | } |
241 | d78cbf09 | Panagiotis Kanavos | |
242 | cfed7823 | Panagiotis Kanavos | public void DeleteContainer(string account, string container) |
243 | 2c053915 | Panagiotis Kanavos | { |
244 | c53aa229 | Panagiotis Kanavos | |
245 | 2c053915 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
246 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
247 | 2c053915 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
248 | 2c053915 | Panagiotis Kanavos | } |
249 | 2c053915 | Panagiotis Kanavos | |
250 | cfed7823 | Panagiotis Kanavos | public Task GetObject(string account, string container, string objectName, string fileName) |
251 | d78cbf09 | Panagiotis Kanavos | { |
252 | c53aa229 | Panagiotis Kanavos | |
253 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
254 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
255 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
256 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
257 | d78cbf09 | Panagiotis Kanavos | |
258 | 283809f3 | Panagiotis Kanavos | return default(Task); |
259 | d78cbf09 | Panagiotis Kanavos | } |
260 | d78cbf09 | Panagiotis Kanavos | |
261 | 4f6d51d4 | Panagiotis Kanavos | public Task PutObject(string account, string container, string objectName, string fileName, string hash = null, string contentType = "application/octet-stream") |
262 | d78cbf09 | Panagiotis Kanavos | { |
263 | c53aa229 | Panagiotis Kanavos | |
264 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
265 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
266 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
267 | 637bc368 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(fileName)); |
268 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
269 | 4f6d51d4 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(contentType)); |
270 | b5061ac8 | Panagiotis Kanavos | |
271 | b5061ac8 | Panagiotis Kanavos | return default(Task); |
272 | d78cbf09 | Panagiotis Kanavos | } |
273 | d78cbf09 | Panagiotis Kanavos | |
274 | c53aa229 | Panagiotis Kanavos | public void DeleteObject(string account, string container, string objectName) |
275 | 0af3141d | Panagiotis Kanavos | { |
276 | c53aa229 | Panagiotis Kanavos | |
277 | 0af3141d | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
278 | 0af3141d | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
279 | 0af3141d | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
280 | 0af3141d | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
281 | d78cbf09 | Panagiotis Kanavos | } |
282 | d78cbf09 | Panagiotis Kanavos | |
283 | cfed7823 | Panagiotis Kanavos | public void MoveObject(string account, string sourceContainer, string oldObjectName, string targetContainer, string newObjectName) |
284 | d78cbf09 | Panagiotis Kanavos | { |
285 | c53aa229 | Panagiotis Kanavos | |
286 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
287 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
288 | 3c43ec9b | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(sourceContainer)); |
289 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(oldObjectName)); |
290 | 3c43ec9b | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(targetContainer)); |
291 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(newObjectName)); |
292 | d78cbf09 | Panagiotis Kanavos | } |
293 | d78cbf09 | Panagiotis Kanavos | |
294 | cfed7823 | Panagiotis Kanavos | public bool ObjectExists(string account, string container, string objectName) |
295 | d78cbf09 | Panagiotis Kanavos | { |
296 | c53aa229 | Panagiotis Kanavos | |
297 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
298 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
299 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
300 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
301 | d78cbf09 | Panagiotis Kanavos | |
302 | d78cbf09 | Panagiotis Kanavos | return default(bool); |
303 | d78cbf09 | Panagiotis Kanavos | } |
304 | d78cbf09 | Panagiotis Kanavos | |
305 | cfed7823 | Panagiotis Kanavos | public ObjectInfo GetObjectInfo(string account, string container, string objectName) |
306 | d78cbf09 | Panagiotis Kanavos | { |
307 | c53aa229 | Panagiotis Kanavos | |
308 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
309 | b6c72f62 | Panagiotis Kanavos | Contract.Requires(StorageUrl!=null); |
310 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
311 | d78cbf09 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
312 | d78cbf09 | Panagiotis Kanavos | |
313 | d78cbf09 | Panagiotis Kanavos | return default(ObjectInfo); |
314 | d78cbf09 | Panagiotis Kanavos | } |
315 | 10523ad9 | Panagiotis Kanavos | |
316 | cfed7823 | Panagiotis Kanavos | public void CreateFolder(string account, string container, string folder) |
317 | 10523ad9 | Panagiotis Kanavos | { |
318 | c53aa229 | Panagiotis Kanavos | |
319 | 10523ad9 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
320 | 10523ad9 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
321 | 10523ad9 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
322 | 10523ad9 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(folder)); |
323 | 10523ad9 | Panagiotis Kanavos | } |
324 | 1caef52e | Panagiotis Kanavos | |
325 | cfed7823 | Panagiotis Kanavos | public Task<TreeHash> GetHashMap(string account, string container, string objectName) |
326 | 1caef52e | Panagiotis Kanavos | { |
327 | c53aa229 | Panagiotis Kanavos | |
328 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
329 | 1caef52e | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
330 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
331 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
332 | 1caef52e | Panagiotis Kanavos | |
333 | 1caef52e | Panagiotis Kanavos | return default(Task<TreeHash>); |
334 | 1caef52e | Panagiotis Kanavos | } |
335 | 1caef52e | Panagiotis Kanavos | |
336 | cfed7823 | Panagiotis Kanavos | public Task<IList<string>> PutHashMap(string account, string container, string objectName, TreeHash hash) |
337 | 1caef52e | Panagiotis Kanavos | { |
338 | c53aa229 | Panagiotis Kanavos | |
339 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
340 | 1caef52e | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
341 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
342 | 1caef52e | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(objectName)); |
343 | 1caef52e | Panagiotis Kanavos | Contract.Requires(hash != null); |
344 | 1caef52e | Panagiotis Kanavos | |
345 | a27aa447 | Panagiotis Kanavos | return default(Task<IList<string>>); |
346 | a27aa447 | Panagiotis Kanavos | } |
347 | a27aa447 | Panagiotis Kanavos | |
348 | cfed7823 | Panagiotis Kanavos | public Task PostBlock(string account, string container, byte[] block, int offset, int count) |
349 | a27aa447 | Panagiotis Kanavos | { |
350 | c53aa229 | Panagiotis Kanavos | |
351 | a27aa447 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
352 | a27aa447 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
353 | a27aa447 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
354 | a27aa447 | Panagiotis Kanavos | Contract.Requires(block != null); |
355 | 0af3141d | Panagiotis Kanavos | Contract.Requires(offset>=0); |
356 | 0af3141d | Panagiotis Kanavos | Contract.Requires(offset < block.Length); |
357 | 0af3141d | Panagiotis Kanavos | Contract.Requires(count>=0); |
358 | 0af3141d | Panagiotis Kanavos | Contract.Requires(count <= block.Length); |
359 | 0af3141d | Panagiotis Kanavos | |
360 | a27aa447 | Panagiotis Kanavos | return default(Task); |
361 | a27aa447 | Panagiotis Kanavos | } |
362 | a27aa447 | Panagiotis Kanavos | |
363 | cfed7823 | Panagiotis Kanavos | public Task<byte[]> GetBlock(string account, string container, Uri relativeUrl, long start, long? end) |
364 | a27aa447 | Panagiotis Kanavos | { |
365 | c53aa229 | Panagiotis Kanavos | |
366 | a27aa447 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(Token)); |
367 | a27aa447 | Panagiotis Kanavos | Contract.Requires(StorageUrl != null); |
368 | a27aa447 | Panagiotis Kanavos | Contract.Requires(!String.IsNullOrWhiteSpace(container)); |
369 | a27aa447 | Panagiotis Kanavos | Contract.Requires(relativeUrl!=null); |
370 | a27aa447 | Panagiotis Kanavos | Contract.Requires(start>=0); |
371 | a27aa447 | Panagiotis Kanavos | Contract.Requires(end==null || end>=0); |
372 | a27aa447 | Panagiotis Kanavos | |
373 | a27aa447 | Panagiotis Kanavos | return default(Task<byte[]>); |
374 | 1caef52e | Panagiotis Kanavos | } |
375 | d78cbf09 | Panagiotis Kanavos | |
376 | d78cbf09 | Panagiotis Kanavos | } |
377 | d78cbf09 | Panagiotis Kanavos | } |