2014-09-02 142 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());