我已尝试过这个链接但是它仍然无法正常工作我不知道为什么 CloudStorageAccount account = new CloudStorageAccount(st,true); CloudBlobClient blobClient = account.createCloudBlobClient(); CloudBlobContainer container = blobClient.getContainerReference(uid); container.createIfNotExists(); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); containerPermissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER); container.uploadPermissions(containerPermissions); File fl = new File(fileUri.getPath());
CloudBlockBlob blob1 =container.getBlockBlobReference(fl.getName());
blob1.upload(new FileInputStream(fl), fl.length());
尝试将图片上传到blob存储区时,我一直无法连接到****。blob.core.windows.net
try {
//Get the rocket data
FileInputStream fis = new FileInputStream(mFilePath);
int bytesRead = 0;
ByteArrayOutputStream bos = new ByteArrayOutputStream();
byte[] b = new byte[1024];
while ((bytesRead = fis.read(b)) != -1) {
bos.write(b, 0, bytesRead);
}
byte[] bytes = bos.toByteArray();
fis.close();
// Post our rocket data (byte array) to the server
URL url = new URL(mBlobUrl.replace("\"", ""));
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoOutput(true);
urlConnection.setRequestMethod("PUT");
urlConnection.addRequestProperty("Content-Type", "image/jpeg");
// Write image data to server
DataOutputStream wr = new DataOutputStream(urlConnection.getOutputStream());
wr.write(bytes);
wr.flush();``
wr.close();
int response = urlConnection.getResponseCode();
//If we successfully uploaded, return true
if (response == 201
&& urlConnection.getResponseMessage().equals("Created")) {
return true;
}
} catch (Exception ex) {
Log.e(TAG, ex.getMessage());
}
(@刚刚格式化为代码以便正确显示)
答案 0 :(得分:0)
您无法像在代码中那样直接将文件上传到Blob存储。默认情况下,访问blob存储仅限于帐户所有者,您必须使用Azure存储REST API与其进行交互。基本上,您必须调用Put Blob
操作才能将文件上载到blob存储中。
请参阅此示例以使用Java SDK for Azure上载文件:http://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-blob-storage/#UploadBlob。
答案 1 :(得分:0)
示例代码如下所示:
CloudStorageAccount account = new CloudStorageAccount(st, true);
CloudBlobClient blobClient = account.createCloudBlobClient();
CloudBlobContainer container = blobClient.getContainerReference(uid);
container.createIfNotExists();
CloudBlockBlob blob = container.getBlockBlobReference("filename");
blob.uploadFromStream(new FileInputStream(mFilePath));
在下面的代码语句中,fl.getName()返回什么。请确保它不包含任何无效字符,如“/”,“\”等
CloudBlockBlob blob1 =container.getBlockBlobReference(fl.getName());