标签: azure-blob-storage

更改 Azure 存储 Blob 中文件的内容类型

我仅使用 Microsoft Azure 存储,不使用其他 Azure 产品/服务。我通过 ftp 类型客户端 (GoodSync) 将文件上传到我的存储 blob,并且在所有文件已经位于 Blob 中之后,我需要根据文件扩展名更改所有文件的内容类型。我环顾四周,没有找到在没有使用 PowerShell 的 VPS 的情况下如何做到这一点的方法。我有哪些选择以及如何实现这一目标?我真的需要一步一步来。

windows storage azure azure-storage azure-blob-storage

3
推荐指数
1
解决办法
9552
查看次数

Nodejs 使用 .createBlockBlobFromLocalFile() 将 base64 图像上传到 azure blob 存储

我想上传通过 Base64 表单从网络应用程序和移动应用程序发送的用户的个人资料图片。

\n\n

根据POST请求,他们需要JSON在正文上发送一个看起来像这样的内容。

\n\n
{\n    "name":"profile-pic-123.jpg",\n    "file":"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBxQTEhIUEhIUFBUV\xe2\x80\xa6K9rk8hCAEkjFMUYiEAI+nHIpsQh0AkisDYRTOiCAbWVtgCtI6IlkHh7LDTQXLH0EIQBj//2Q==" // the base64 image\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

现在在服务器端使用NodeExpress,我使用了这个 npm 模块,azure-storage它提供了一种使用 Web 服务将文件上传到 azure blob 存储的好方法。

\n\n

但有一点我无法理解。这是我的控制器的部分代码。我成功创建了所有必要的连接和密钥以及其他创建工作的内容blobService

\n\n
controllers.upload = function(req, res, next){\n\n    // ...\n    // generated some sastoken up here\n    // etc.\n    // ...\n\n    var uploadOptions = {\n        container: \'mycontainer\',\n        blob: req.body.name, // im not sure about this\n        path: req.body.file // im not sure about this either\n    }\n\n    sharedBlobService.createBlockBlobFromLocalFile(uploadOptions.container, uploadOptions.blob, …
Run Code Online (Sandbox Code Playgroud)

azure azure-storage node.js azure-blob-storage

3
推荐指数
1
解决办法
6430
查看次数

azure存储c ++ sdk编译中对符号“pthread_rwlock_wrlock@@GLIBC_2.2.5”的未定义引用

我正在尝试在 Fedora 22 上编译 Azure 存储 c++ SDK。我使用的是 gcc 版本 5.1.1-1。当我使用以下命令编译测试应用程序时:

$> CASABLANCA_DIR=/source/codebox/azure/cpprestsdk/ CXX=g++ cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_TESTS=on

$> make
Run Code Online (Sandbox Code Playgroud)

它会产生以下错误消息:

/usr/bin/ld: CMakeFiles/azurestoragetest.dir/main.cpp.o: undefined reference to symbol 'pthread_rwlock_wrlock@@GLIBC_2.2.5'
/usr/lib64/libpthread.so.0: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
tests/CMakeFiles/azurestoragetest.dir/build.make:879: recipe for target 'Binaries/azurestoragetest' failed
make[2]: *** [Binaries/azurestoragetest] Error 1
CMakeFiles/Makefile2:125: recipe for target 'tests/CMakeFiles/azurestoragetest.dir/all' failed
make[1]: *** [tests/CMakeFiles/azurestoragetest.dir/all] Error 2
Makefile:126: recipe for target 'all' failed
make: *** [all] Error 2
Run Code Online (Sandbox Code Playgroud)

我可以在/usr/lib64目录中看到libpthread.so.0 …

azure azure-storage azure-storage-files azure-blob-storage

3
推荐指数
1
解决办法
4749
查看次数

在 Azure Functions 中重新启动 Poison blob

根据 azure 文档,可以通过从 azure-webjobs-hosts 中删除 blob 来重新触发它们。

[...Blob 收据存储在函数应用的 Azure 存储帐户中名为 azure-webjobs-hosts 的容器中(由 AzureWebJobsStorage 应用设置指定)...要强制重新处理 Blob,请删除该 Blob 收据手动从 azure-webjobs-hosts 容器中获取 blob。]

如果我有中毒 blob 的列表,是否可以通过将它们从 webjobs-blobtrigger-poison 中删除来重新触发它们,还是只适用于成功的 blob?不幸的是,文档中没有说明。

当 Blob 触发器函数失败时,默认情况下,Azure Functions 会针对给定 Blob 重试该函数最多 5 次(包括第一次尝试)。如果 5 次尝试全部失败,Functions 会向名为 webjobs-blobtrigger-poison 的存储队列添加一条消息。

azure azure-blob-storage azure-functions

3
推荐指数
1
解决办法
1813
查看次数

多个特定主机的 Azure Blob CORS 设置

在 Blob 存储中配置 CORS 的限制让我感到沮丧。

  • 最多 265 个字符
  • 没有通配符主机
  • 最多 5 个 CORS 规则

由于这些限制,我最多只能找到约 48 个主机。

请参阅learn.microsoft.com

对于我的场景(私有 cdn 来服务 js、css、字体等资产),我看不到任何其他使用*for的方法AllowedOrigins这是唯一的方法吗?没有人(没有其他主机)应该能够使用我的许可字体(https://www.viget.com/articles/cors-youre-doing-it-wrong)。

一体化

通配符之类的*.int.any.local.network可能是一个解决方案。

http://brand-AT.int.any.local.network
http://brand-be.int.any.local.network
http://brand-bg.int.any.local.network
http://brand-ca.int.any.local.network
http://brand-ch.int.any.local.network
http://brand-cn.int.any.local.network
http://brand-tr.int.any.local.network
http://brand-cz.int.any.local.network
http://brand-de.int.any.local.network
http://brand-dk.int.any.local.network
http://brand-es.int.any.local.network
http://brand-fi.int.any.local.network
http://brand-fr.int.any.local.network
http://brand-co.uk.int.any.local.network
http://brand-hu.int.any.local.network
http://brand-ie.int.any.local.network
http://brand-it.int.any.local.network
http://brand-nl.int.any.local.network
http://brand-pl.int.any.local.network
http://brand-pt.int.any.local.network
http://brand-ro.int.any.local.network
http://brand-ru.int.any.local.network
http://brand-se.int.any.local.network
http://brand-sk.int.any.local.network
http://brand-tr.int.any.local.network
http://brand-us.int.any.local.network
http://brand-za.int.any.local.network
Run Code Online (Sandbox Code Playgroud)

分期

通配符之类的*.qs.any.dmz.network可能是一个解决方案。

http://brand-AT.qs.any.dmz.network
http://brand-be.qs.any.dmz.network
http://brand-bg.qs.any.dmz.network
http://brand-ca.qs.any.dmz.network
http://brand-ch.qs.any.dmz.network
http://brand-cn.qs.any.dmz.network
http://brand-tr.qs.any.dmz.network
http://brand-cz.qs.any.dmz.network
http://brand-de.qs.any.dmz.network
http://brand-dk.qs.any.dmz.network
http://brand-es.qs.any.dmz.network
http://brand-fi.qs.any.dmz.network
http://brand-fr.qs.any.dmz.network …
Run Code Online (Sandbox Code Playgroud)

azure cors azure-cdn azure-blob-storage

3
推荐指数
1
解决办法
1124
查看次数

如何将文件保存到 Azure blob 容器中的子文件夹?

我正在尝试将图像保存到我们的 Azure 博客存储中。感谢通过代码片段下面的链接提供的有用响应,我能够成功地将文件保存到我们的顶级容器中。不幸的是,我希望将文件保存到该容器中的子目录中。而且,在我的一生中,我无法让它发挥作用。

目前,图像正在保存到我们的“images”容器中。该容器内有一个文件夹“members”。我希望将文件保存到该子目录中。所以“图像/成员”。我尝试将“images/members”传递给 GetBlockBlobReference 但文件根本没有保存(或者,至少我找不到它)。

这看起来应该很简单。提前致谢。

  CloudBlobClient blobClient = account.CreateCloudBlobClient();
  CloudBlobContainer container = blobClient.GetContainerReference("images");
  CloudBlockBlob blockBlob = container.GetBlockBlobReference(filename);
  blockBlob.UploadFromStream(stream);
Run Code Online (Sandbox Code Playgroud)

顶级容器。带有Guid的图片是我上传的一张

“成员”目录。按最新排序;最近没有出现任何内容

有用的解决方案让我成功保存到顶级容器

blob azure azure-blob-storage

3
推荐指数
1
解决办法
7800
查看次数

Azure Functions blob 触发器比 WebJobs blob 触发器更可靠?

如果您阅读有关带有 blob 存储触发器的 Azure WebJobs 的文档,他们会提到这不太可靠:

WebJobs SDK 扫描日志文件以监视新的或更改的 blob。这个过程不是实时的;创建 blob 后几分钟或更长时间可能不会触发函数。此外,存储日志是在“尽力而为”的基础上创建的;无法保证所有事件都会被捕获。在某些情况下,日志可能会丢失。如果您的应用程序无法接受 Blob 触发器的速度和可靠性限制,则建议的方法是在创建 Blob 时创建队列消息,并在处理 Blob 的函数上使用 QueueTrigger 属性而不是 BlobTrigger 属性。
https://github.com/Azure/azure-webjobs-sdk/wiki/Blobs

我假设他们对 Azure Functions 使用相同的功能,但在那里我找不到任何相关信息。有人知道更多吗?这种情况已经改变还是仍然如此?

azure azure-webjobs azure-blob-storage azure-functions

3
推荐指数
1
解决办法
1156
查看次数

将 Python 日志记录设置为 Azure Blob,但在那里找不到日志文件

我正在设置烧瓶服务的日志记录。我尝试使用以下代码将日志写入天蓝色的 blob 存储

import logging
import sys

from azure_storage_logging.handlers import BlobStorageRotatingFileHandler

logger = logging.getLogger('service_logger')
logger.setLevel(logging.DEBUG)
log_formater = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(process)d - %(message)s')
azure_blob_handler = BlobStorageRotatingFileHandler(filename = 'service.log', 
                                                    account_name='servicestorage',
                                                    account_key='',
                                                    maxBytes= maxBytes,
                                                    container='service-log')
azure_blob_handler.setLevel(logging.INFO)
azure_blob_handler.setFormatter(log_formater)
logger.addHandler(azure_blob_handler)
Run Code Online (Sandbox Code Playgroud)

然后,我尝试使用 logger.warning('test warning'),但没有在 azure blob 容器上创建日志文件。

谁能帮我找出我哪里做错了?

最好,艾根

logging azure flask azure-blob-storage

3
推荐指数
1
解决办法
4447
查看次数

如何使用 C# 获取 Azure 容器虚拟文件夹中的文件

我已经回顾过这一点: Getting list of names of Azure blob files in a container?

这是: https: //feedback.azure.com/forums/287593-logic-apps/suggestions/16252474-list-files-in-folder-on-azure-blob-storage

但我还没有找到任何关于如何使用 C# 列出容器内特定虚拟文件夹中的文件的代码示例。据我所知。我没有看到任何在 ListBlobs () 方法中指定文件路径的方法。

        var blobStorageAccount = GetStorageAccount();
        var blobClient = blobStorageAccount.CreateCloudBlobClient();
        var blobContainer = blobClient.GetContainerReference(containerName);
        List<string> blobNames = blobContainer.ListBlobs().OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
Run Code Online (Sandbox Code Playgroud)

c# azure azure-blob-storage

3
推荐指数
1
解决办法
2674
查看次数

我们是否有 Azure Blob 文件名不支持的字符列表?

我正在将一些带有不同特殊字符的文件上传到 blob。它没有被上传。我发现azure的文件命名有一些限制。因此,我需要 blob 文件名不支持的 unicode 字符列表,或者查找 azure blob 文件名是否支持某个字符的方法。

我已经在下面提到了这一点。他们没有提供任何特定的列表或找到它的方法。 https://learn.microsoft.com/en-us/rest/api/storageservices/naming-and-referencing-shares--directories--files--and-metadata

我需要对 azure blob 上的上传文件刀片上发生的文件名验证进行精确验证

c# filenames azure azure-files azure-blob-storage

3
推荐指数
1
解决办法
2万
查看次数