使用 Azure 上传和访问图像
Uploading and accessing images with Azure
我想上传一些静态图片,稍后我将通过一些移动应用访问这些图片。我有一个很少使用的 Azure 帐户,所以我认为这是最好的地方,因此我将它们上传到 Azure 存储中的 "File Share"。
我天真地以为我可以让他们通过简单的 Web 请求访问这些文件 url
https://myplace.file.core.windows.net/app/images/bnb/shop/bugle_200_2.jpg
所有这些让我感到困惑的是 BadRequest 错误。我意识到我可以为每个文件创建一个共享访问签名 (SAS),但这似乎太过分了。
是否有更好的 Azure 功能可以使用?我不想必须使用 Azure API 来获取这些文件
我认为您应该使用的服务是 blob 存储,而不是文件存储。根据 the documentation,文件存储更多地用于 SMB 共享。
设置 Azure blob 存储时,您有几个不同的选项。如果这些静态图像没有任何 sensitive/secure,您可以考虑制作一个 public container 并像这样简单地访问文件。
如果您需要身份验证,则需要使用 azure 存储访问密钥或 azure 存储访问令牌。在这两者中,存储访问令牌是迄今为止最安全的。
您不需要为每个文件创建 SAS 令牌,而是授予它对容器的读取权限。同样,您必须根据应用程序的 security/sensitivity 需求对其进行调整。
为@CtrlDot 的出色回答再补充几点。
我完全同意您应该使用 Blob Storage
来存储静态内容。
关于容器权限,我实际上建议将权限 (ACL) 设置为 Blob
,这样用户只能查看他们拥有 URL 的 blob,而不是枚举一个文件中的所有 blob容器(将容器 ACL 设置为 Container
将使用户能够列出容器中的 blob,这可能不是您想要的行为)。
除此之外,使用 Blob 存储还有两个明显的优势:
- 自定义域:您可以将 blob 存储映射到自定义域(例如静态 content.mywebsite.com)并使用它来提供内容,而不是使用 Azure Blob 存储标准端点(您的account.blob.core.windows.net)。
- CDN:您还可以使用 CDN 启用您的 blob 存储端点。然后内容将被复制到遍布全球的许多 CDN 节点,并从靠近用户的节点提供服务,从而改善用户体验。
我想上传一些静态图片,稍后我将通过一些移动应用访问这些图片。我有一个很少使用的 Azure 帐户,所以我认为这是最好的地方,因此我将它们上传到 Azure 存储中的 "File Share"。
我天真地以为我可以让他们通过简单的 Web 请求访问这些文件 url
https://myplace.file.core.windows.net/app/images/bnb/shop/bugle_200_2.jpg
所有这些让我感到困惑的是 BadRequest 错误。我意识到我可以为每个文件创建一个共享访问签名 (SAS),但这似乎太过分了。
是否有更好的 Azure 功能可以使用?我不想必须使用 Azure API 来获取这些文件
我认为您应该使用的服务是 blob 存储,而不是文件存储。根据 the documentation,文件存储更多地用于 SMB 共享。
设置 Azure blob 存储时,您有几个不同的选项。如果这些静态图像没有任何 sensitive/secure,您可以考虑制作一个 public container 并像这样简单地访问文件。
如果您需要身份验证,则需要使用 azure 存储访问密钥或 azure 存储访问令牌。在这两者中,存储访问令牌是迄今为止最安全的。
您不需要为每个文件创建 SAS 令牌,而是授予它对容器的读取权限。同样,您必须根据应用程序的 security/sensitivity 需求对其进行调整。
为@CtrlDot 的出色回答再补充几点。
我完全同意您应该使用 Blob Storage
来存储静态内容。
关于容器权限,我实际上建议将权限 (ACL) 设置为 Blob
,这样用户只能查看他们拥有 URL 的 blob,而不是枚举一个文件中的所有 blob容器(将容器 ACL 设置为 Container
将使用户能够列出容器中的 blob,这可能不是您想要的行为)。
除此之外,使用 Blob 存储还有两个明显的优势:
- 自定义域:您可以将 blob 存储映射到自定义域(例如静态 content.mywebsite.com)并使用它来提供内容,而不是使用 Azure Blob 存储标准端点(您的account.blob.core.windows.net)。
- CDN:您还可以使用 CDN 启用您的 blob 存储端点。然后内容将被复制到遍布全球的许多 CDN 节点,并从靠近用户的节点提供服务,从而改善用户体验。