我试图让运行在Azure Web App上的PHP wiki访问我的Azure Blob存储,以引用其内容,但它在引用Blob容器时似乎遇到了一些问题。
根据一些参考资料,我已经在我的应用程序中安装了composer和microsoft/windowsazure插件。供应商文件夹的位置是D:\site\wwwroot\wiki\bar\vendor。
我还使用下面的代码创建index2.php(目前使用index.php)。
<?php
ini_set("display_errors", On);
error_reporting(E_ALL);
require_once 'vendor\autoload.php';
use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Common\ServiceException;
// Create blob REST proxy.
$connectionString = "DefaultEndpointsProtocol=https;AccountName=<account name>;AccountKey=<key>;";
$blobRestProxy = ServicesBuilder::getInstance()->createBlobService($connectionString);
try {
// List blobs.
$blob_list = $blobRestProxy->listBlobs("wiki");
$blobs = $blob_list->getBlobs();
foreach($blobs as $blob)
{
echo $blob->getName().": ".$blob->getUrl()."<br />";
}
}
catch(ServiceException $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/library/azure/dd179439.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."<br />";
}
然而,当它运行时,我出现了这个错误。
Fatal error: Uncaught exception 'InvalidArgumentException' with message 'The path of a URI with an authority must start with a slash "/" or be empty' in D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php:693
Stack trace:
#0 D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php(502): GuzzleHttp\Psr7\Uri->validateState()
#1 D:\home\site\wwwroot\wiki\bar\vendor\microsoft\azure-storage\src\Common\Internal\ServiceRestProxy.php(124): GuzzleHttp\Psr7\Uri->withPath('wiki')
#2 D:\home\site\wwwroot\wiki\bar\vendor\microsoft\azure-storage\src\Blob\BlobRestProxy.php(1181): MicrosoftAzure\Storage\Common\Internal\ServiceRestProxy->send('GET', Array, Array, Array, 'wiki', 200)
#3 D:\home\site\wwwroot\wiki\bar\index2.php(18): MicrosoftAzure\Storage\Blob\BlobRestProxy->listBlobs('wiki')
#4 {main} thrown in D:\home\site\wwwroot\wiki\bar\vendor\guzzlehttp\psr7\src\Uri.php on line 693
难道不能用这种php代码从这个位置访问存储吗?
我找到了解决办法。
正如错误messege所说,有必要在容器名“wiki”之前加“/”。关于azure的说明。微软com没有贴上这个标志,所以我仍然找不到它是解决方案的原因。。。
我正在尝试将应用程序在Azure上投入生产。此应用程序由一个webapp(运行Docker容器)组成,该应用程序应该与Azure存储帐户(blob)通信。 将Web应用的所有出站IP地址添加到我的存储帐户的防火墙设置后,我仍然没有访问Blob的权限。错误如下:“此请求无权执行此操作。” 然而,当我在本地运行我的应用程序,并将我的本地IP添加到这些相同的防火墙设置中时,它可以工作。当我没有将其添加到
我正在ec2实例上运行neo4j,我可以看到它正在运行http://ip:7474/browser在ec2上,我无法在elastic beanstalk上通过php访问它。文件路径显示空白页。 我还将弹性beanstalk实例的公共ip作为自定义TCP添加到linux ami实例中。有什么我遗漏的吗?我真的很感谢你的帮助。提前谢谢。
问题内容: 我正在尝试将Jenkins与AWS CodeCommit集成。Jenkins在具有Ubuntu 14.04的AWS EC2实例上运行。 我关注了此博客文章:http : //blogs.aws.amazon.com/application- management/post/Tx1C8B98XN0AF2E/Integrating-AWS-CodeCommit-with- Jenkin
我有一个运行在EC2机器上的Nifi实例,并且我正在尝试访问一个受限制的s3 bucket。因为不建议手动生成访问密钥,所以我希望为机器提供访问外部桶的正确IAM角色。 我给了EC2机器一个角色,这个角色似乎适用于除NIFI之外的所有应用程序。是否有一些特殊的配置我需要设置Nifi不使用手动访问键?
问题内容: 我在Ubuntu上获取对.mdb文件(MS-Access db)的访问权限时遇到问题。我需要完全访问权限(也可以读写)。 最初,项目是使用odbc在Windows上构建的(并且一切正常。)但是当我在linux服务器上移动它时出现了问题。 目前,已安装用于odbc的PHP扩展。但是我找不到用于Access的任何免费的ODBC驱动程序。我尝试使用MDB工具,但似乎仅适用于阅读。 也许有人可
我有一个powershell脚本,它在连接到Azure blob存储和AzureSQL的Azure VM中运行。blob存储和SQL都受到防火墙的保护,blob存储是VNet的一部分。VM位于自己的VNet上。我将VM的IP地址插入Azure存储和sql azure中。对AzureSQL访问很好,但是当我尝试连接到blob存储时,我收到错误消息 “Get-AzStorageContainer:未授