Microsoft заявляет, что получение Blob - это просто обычный http get https://myaccount.blob.core.windows.net/mycontainer/myblob
. Но как мне форматировать строку, когда у меня есть аккаунт + общий ключ?Формат частного URL-адреса памяти для файла GET. Rest API
Я знаю, что есть Azure SDK, но я создаю «дополнение» к существующей системе java ee и не могу работать в Azure, поэтому я использую REST Api. Это то, что я пытался до сих пор:
String account = "myaccount";
String key = "243fedfsdf23f4f";
String protocol = "http";
String storageConnectionString = String.format("DefaultEndpointsProtocol=%s;AccountName=%s;AccountKey=%s", protocol, account, key);
System.out.println(storageConnectionString);
URL url = new URL("https://mysite.azureweb.com/myfile.txt");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
if (conn.getResponseCode() != 200) {
throw new IOException(conn.getResponseMessage());
}
// Buffer the result into a string
BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
StringBuilder sb = new StringBuilder();
String line;
while ((line = rd.readLine()) != null) {
sb.append(line);
}
rd.close();
conn.disconnect();
Строка, вероятно, нуждается в некотором Base64 кодирование?
Update
Запрос Http выглядит GET https://myAccount.blob.core.windows.net/myDir/myfile.txt HTTP/1.1 x-ms-date: Thu, 01 Oct 2015 12:56:11 GMT x-ms-version: 2015-02-21 Authorization: SharedKey myAccount:asdfkjsladjfsdf827fhwf298f924f92723dfh23f273f2h7h4f Host: myAccount.blob.core.windows.net
Я "просто" нужно упаковать это в запросе, чтобы получить файл в /mydir/myfile.txt
Возможно, вы захотите удалить тот ключ, который вы положили в вопрос, и изменить/удалить значение ключа на сервере azure. –
Частное хранилище памяти, поэтому мне нужен ключ. Это был всего лишь пример, ключ намного длиннее. –
Хорошо, я не знал, просто думал, что это ключ, поэтому подумал о том, чтобы предупредить вас. –