【问题标题】:azure Blob REST API to Move Data from RemoteServer to storage account using Curl with SASkeyazure Blob REST API 使用带有 SASkey 的 Curl 将数据从 RemoteServer 移动到存储帐户
【发布时间】:2020-11-20 11:47:30
【问题描述】:

我的用例是使用 SAS 作为身份验证机制将数据从远程服务器移动到 azure blob 容器

下面是我的 Bash 脚本 #!/bin/bash

在 Azure 存储容器中上传 Blob。

取消设置 http_proxy 取消设置 https_proxy

storage_account="mystorageacct"

container_name="测试"

blob_name="dvc"

upload_file_path="sample.txt"

private_endpoint_address="0.0.0.0"

sas_token="saskey"

blob_store_url="blob.core.windows.net"

request_date=$(TZ=GMT 日期 "+%a, %d %h %Y %H:%M:%S %Z")

storage_service_version="2019-02-02"

x_ms_date_h="x-ms-date:$request_date"

x_ms_version_h="x-ms-version:$storage_service_version"

x_ms_blob_h="x-ms-blob-type: BlockBlob"

curl -v -X PUT -k
-H "$x_ms_date_h"
-H "$x_ms_version_h"
-H "$x_ms_blob_h"
-T "${upload_file_path}"
-H "主机:${storage_account}.${blob_store_url}"
-H "内容长度:0"
-H "内容类型:文本/纯文本;charset=UTF-8"
https://${private_endpoint_address}/${container_name}/${blob_name}?${sas_token}

当我执行上面的脚本时,它总是返回

xml version="1.0" encoding="utf-8"?>InvalidUri请求的 URI 不代表服务器上的任何资源。 请求ID:XXXXXX

  • 与主机 one.XXXX.XXX.com 的连接 #0 保持不变
  • 关闭连接 #0 时间:2020-07-30T16:51:50.0491875Zhttps://mystorageacct.blob.core.windows.net/test/dvc?saskey

有人可以告诉我这里出了什么问题吗?MSFT 文档没有为我提供有关 URI 异常的线索

谢谢 P

【问题讨论】:

  • 您好,我想确认一下您现在可以解决问题了吗?

标签: azure-blob-storage


【解决方案1】:

问题应该来自这里:

https://${private_endpoint_address}/${container_name}/${blob_name}?${sas_token}

private_endpoint_address 是“0.0.0.0”,所以 blob 的 url 不正确。

blob 的正确 url 应该如下所示:

https://your_storage_account_name.blob.core.windows.net/your_container_name/your_blob_name?sastoken

请尝试使用正确的 url 格式,如果您还有其他问题,请告诉我。

【讨论】:

    猜你喜欢
    • 2020-07-01
    • 2018-12-06
    • 2018-01-25
    • 2019-07-13
    • 1970-01-01
    • 2019-11-30
    • 1970-01-01
    • 2019-01-15
    • 2017-08-18
    相关资源
    最近更新 更多