0

Azure BLOBストレージにtxt(プレーンテキスト)ファイルがあります。それを取り出してデータを処理したいと思います。私にできることは、ファイルへの直接パスを含むファイルをダウンロードすることです。これは正常に機能し、アップロードしたファイルを返します。

通常の.txtファイル(blobではなくWebサイト)では正常に機能しましたが、blobファイルでは必要なものが返されません。このコードは、blob以外のファイルでどのように機能するかを示しています。

$file = $myData->ContentURI;
$fh = fopen($file, 'r');
$theData = fread($fh, filesize($file));
echo $theData;
fclose($fh);

ここで、同じ(または類似の)コードでblobtxtを読み取る必要があります。ダウンロードできるので、ファイルは存在すると確信しています。


編集:

自分で修正できたので、上記のコードを次のコードに変更しました。

$file = $myData->ContentURI;
echo file_get_contents($file);
4

1 に答える 1

1

次のいずれかのコードを試すことができます。

オプション 1: ストリームの読み取り

<?php
$blobUrl = "your blob's URL";
$fh = fopen($blobUrl, 'r');
$data=''; 
$size=102400;
while(!feof($fh)) 
    $data.=fread($fh,$size); 
fclose($fh); 
echo $data;
?>

オプション 2: file_get_contents を使用して URL を読み取る

<?php
$blobUrl = "your blob's URL";
$theData = file_get_contents($blobUrl);
echo $theData;
?>
BLOB を含む BLOB コンテナーに「プライベート」ACL がないことを確認してください。「Blob」または「Container」ACL のいずれかが必要です。ACL の詳細については、http://msdn.microsoft.com/en-us/library/windowsazure/dd179354.aspx を参照してください。BLOB コンテナーを非公開にしたい場合は、Shared Access Signature を使用して一時 URL を作成し、BLOB コンテナーから BLOB を読み取る必要があります。Shared Access Signature の詳細については、http://msdn.microsoft.com/en-us/library/windowsazure/hh508996.aspx を参照してください。
于 2013-03-11T11:30:17.450 に答える