2012-06-13 37 views
11

Tôi muốn đọc một byte tệp PDF từ bộ nhớ Azure, vì tôi có đường dẫn tệp.Đọc tệp từ bộ lưu trữ blob Azure

https://hostedPath/pdf/1001_12_Jun_2012_18_39_05_594.pdf 

Vì vậy, có thể đọc nội dung từ bộ nhớ blob bằng cách truyền trực tiếp tên đường dẫn của nó? Ngoài ra tôi đang sử dụng C#.

Trả lời

13

Miễn là blob là công khai, bạn hoàn toàn có thể vượt qua url blob. Ví dụ, bạn có thể nhúng nó trong một hình ảnh html hoặc liên kết:

<a href="https://myaccount.blob.core.windows.net/pdf/1001_12_Jun_2012_18_39_05_594.pdf">click here</a> 

Theo mặc định, hộp đựng blob là tin. Để bật quyền truy cập đọc công khai, bạn chỉ cần thay đổi quyền vùng chứa khi tạo vùng chứa. Ví dụ:

var blobStorageClient = storageAccount.CreateCloudBlobClient(); 
var container = blobStorageClient.GetContainerReference("pdf"); 
container.CreateIfNotExist(); 

var permissions = container.GetPermissions(); 
permissions.PublicAccess = BlobContainerPublicAccessType.Container; 
container.SetPermissions(permissions); 
+0

vui lòng xem câu trả lời của @ Sandrino về các chữ ký truy cập chia sẻ, bạn có thể thấy rất hữu ích với nội dung khách hàng cụ thể so với nội dung công cộng như hình ảnh, tệp trợ giúp, tài liệu quảng cáo, v.v. –

8

Giống như David giải thích bạn có thể truy cập bất kỳ đốm màu nào thông qua url của nó miễn là vùng chứa không phải là riêng tư.

Nếu vùng chứa là riêng tư, bạn vẫn có thể tạo tệp của mình có thể truy cập thông qua url bằng cách sử dụng Shared Access Signatures (SAS). Điều này sẽ cho phép bạn cấp cho người dùng quyền tải xuống tệp (bằng cách cung cấp cho họ SAS, usually appended to the URL) nhưng hạn chế họ kịp thời.

Điều này là hoàn hảo khi bạn trả tiền tải xuống chẳng hạn, để bảo vệ tệp của bạn nhưng cho phép tải xuống trong một khoảng thời gian giới hạn nếu ai đó thanh toán.

Bây giờ, trong câu hỏi của bạn, bạn tuyên bố rằng bạn đang sử dụng C#. Nếu bạn muốn tải xuống tệp trong ứng dụng WPF/Windows Forms/Console, bạn có thể chỉ cần sử dụng WebClient để tải xuống tệp (nếu vùng chứa công khai hoặc bạn nối thêm URL với SAS):

WebClient myWebClient = new WebClient(); 
myWebClient.DownloadFile("https://myaccount.blob.core.windows.net/pdf/1001_12_Jun_2012_18_39_05_594.pdf", @"D:\Data\myPdfFile.pdf");  
+0

Liên kết msdn cho SAS không hoạt động nữa – Nikitesh

Các vấn đề liên quan