gpt4 book ai didi

codeigniter-3 - 代码点火器3 : Listing all directory and files from azure blob storage?

转载 作者:行者123 更新时间:2023-12-04 08:32:11 25 4
gpt4 key购买 nike

我有用于连接到 azure blob 存储的 azure blob 存储的帐户名、帐户 key 和其他必要信息。我想列出 azure blob storage 中的所有目录和文件.我搜索并找到了链接,但不明白如何从 CodeIgniter 开始集成.

I search this library https://github.com/Azure/azure-sdk-for-php#readme
有人可以为我提供链接或告诉我如何从一开始就集成到 codeigniter 中吗?

最佳答案

如果您想通过 cURL 列出容器或某个目录下的 blob,只需尝试以下代码:

<?php 

function generateSharedAccessSignature($accountName,
$storageKey,
$signedPermissions,
$signedService,
$signedResourceType,
$signedStart,
$signedExpiry,
$signedIP,
$signedProtocol,
$signedVersion){

if(empty($accountName)){
trigger_error("The account name is required.");
return;
}

if(empty($storageKey)){
trigger_error("The account key is required.");
return;
}

if(empty($signedPermissions)){
trigger_error("The permissions are required.");
return;
}

if(empty($signedService)){
trigger_error("The services are required.");
return;
}

if(empty($signedResourceType)){
trigger_error("The resource types are required.");
return;
}

if(empty($signedExpiry)){
trigger_error("The expiration time is required.");
return;
}

if(empty($signedVersion)){
trigger_error("The service version is required.");
return;
}
// generate the string to sign
$_toSign = urldecode($accountName) . "\n" .
urldecode($signedPermissions) . "\n" .
urldecode($signedService) . "\n" .
urldecode($signedResourceType) . "\n" .
urldecode($signedStart) . "\n" .
urldecode($signedExpiry) . "\n" .
urldecode($signedIP) . "\n" .
urldecode($signedProtocol) . "\n" .
urldecode($signedVersion) . "\n";

// sign the string using hmac sha256 and get a base64 encoded version_compare
$_signature = base64_encode(hash_hmac("sha256", utf8_encode($_toSign), base64_decode($storageKey), true));

return $_signature;
}

$key= "";
$storageAccount = "";
$containerName = "";
$directoryName = ""; //leave it empty if list all blobs in container

$_signedPermissions = "rl"; //read and list permission
$_signedService = "b"; // for blob service
$_signedResourceType = "c"; //only for access container
$_signedStart = "2021-05-31T00:00:00Z"; //sas token start time
$_signedExpiry = "2021-06-05T00:00:00Z"; //sas token expairy time
$_signedIP = NULL; // no IP limit
$_signedProtocol = "https";
$_signedVersion = "2020-02-10";

$_signature = generateSharedAccessSignature($storageAccount,
$key,
$_signedPermissions,
$_signedService,
$_signedResourceType,
$_signedStart,
$_signedExpiry,
$_signedIP,
$_signedProtocol,
$_signedVersion);

$sig = urlencode($_signature);

$destinationURL = "https://$storageAccount.blob.core.windows.net/$containerName?restype=container&comp=list&prefix=$directoryName&sp=$_signedPermissions&srt=$_signedResourceType&ss=$_signedService&st=$_signedStart&se=$_signedExpiry&sv=$_signedVersion&spr=$_signedProtocol&sig=$sig";

$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, $destinationURL);

$content = curl_exec($ch);
echo $content;

?>
结果:
enter image description here
enter image description here

关于codeigniter-3 - 代码点火器3 : Listing all directory and files from azure blob storage?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64965301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com