2014-09-02 32 views
0

我已經嘗試了鏈接,這個,但它仍然不工作我不知道爲什麼 CloudStorageAccount帳戶=新CloudStorageAccount(ST,真); CloudBlobClient blobClient = account.createCloudBlobClient(); CloudBlobContainer container = blobClient.getContainerReference(uid); container.createIfNotExists(); BlobContainerPermissions containerPermissions = new BlobContainerPermissions(); containerPermissions.setPublicAccess(BlobContainerPublicAccessType.CONTAINER); container.uploadPermissions(containerPermissions); 文件fl = new File(fileUri.getPath());錯誤連接到Blob存儲

  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

您無法直接將文件上傳到Blob存儲就像你在你的代碼做的方式。默認情況下,只有帳戶所有者才能訪問blob存儲,並且您必須使用Azure存儲REST API與其進行交互。實質上,您必須調用Put Blob操作才能將文件上載到BLOB存儲中。

見這個例子上傳使用Java SDK的Azure中的文件:http://azure.microsoft.com/en-us/documentation/articles/storage-java-how-to-use-blob-storage/#UploadBlob

+0

TNX @Guarav但我得到了我寫的代碼參照樣本項目上thier網站 – coderwithattitude 2014-09-02 08:25:05

+0

你能分享鏈接? – 2014-09-02 10:47:39

+0

我ü回答它沒有工作嘗試在這裏是鏈接http://azure.microsoft.com/en-us/downloads/ – coderwithattitude 2014-09-03 10:38:52

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());