【Azure 存储服务】使用POST方式向Azure Storage Queue中插入Message的办法

简介: 【Azure 存储服务】使用POST方式向Azure Storage Queue中插入Message的办法

问题描述

使用POST HTTP Request, 如何向Azure Storage Queue中写入Message呢?例如使用CURL发送POST指令是否可以呢?

CURL -H "Content-Type: application/xml" -X POST -d "message body" "azure storage queue endpoint"  

 

问题解答

可以的,首先从Azure Storage Account中获取访问令牌,示例中使用的为SAS( Shared access signature : 共享访问签名)。然后直接发送POST请求。

 

第一步:获取SAS Token,进入Storage Account的 Shared access signature 页面,选择“Queue” ,Allow resource type全部选择,然后根据所需要的操作设置Allow Permissions。

 

第二步:拼接 Endpoint。把上一步的SAS Token复制出来,与Queue的地址进行拼接:

完整的Endpoint URL为:

https://xxxxxxxx.queue.core.chinacloudapi.cn

/testpostmethod

/messages

?sv=2020-02-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-10-16T15:10:22Z&st=2021-10-16T07:10:22Z&spr=https&sig=f%2Fktxxxxxc8qNeeAM9izhpAZttlpGivTLc%3D

 

第三步:发送POST 请求,消息体为XML格式 <QueueMessage><MessageText>【message body】</MessageText></QueueMessage>

<QueueMessage>

<MessageText>Test the Azure Storage message 1016 -1</MessageText>

</QueueMessage>

  • Postman VS CURL
  • CURL 示例:
curl -H "Content-Type: application/xml"
-X POST 
-d "<QueueMessage><MessageText>Test the Azure Storage message 1016 - 9</MessageText></QueueMessage>"
 "https://xxxxxxxx.queue.core.chinacloudapi.cn/testpostmethod/messages?sv=2020-02-10&ss=bfqt&srt=sco&sp=rwdlacupx&se=2021-10-16T15:10:22Z&st=2021-10-16T07:10:22Z&spr=https&sig=f%2FkttQxxxxxxxxAZttlpGivTLc%3D"
 -v

 

第四步:在Queue中查看数据

 

 

 

参考资料

Azure Storage Account Queue - Put Message : https://docs.microsoft.com/en-us/rest/api/storageservices/put-message

The Put Message operation adds a new message to the back of the message queue. A visibility timeout can also be specified to make the message invisible until the visibility timeout expires. A message must be in a format that can be included in an XML request with UTF-8 encoding. The encoded message can be up to 64 KiB in size for versions 2011-08-18 and newer, or 8 KiB in size for previous versions.

The Put Message request may be constructed as follows. HTTPS is recommended. Replace myaccount with the name of your storage account, and myqueue with the name of your queue:

 

相关文章
|
3月前
|
存储 容器
【Azure 存储服务】如何查看Storage Account的删除记录,有没有接口可以下载近1天删除的Blob文件信息呢?
【Azure 存储服务】如何查看Storage Account的删除记录,有没有接口可以下载近1天删除的Blob文件信息呢?
|
3月前
|
存储 JSON API
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
【Azure 存储服务】使用REST API操作Azure Storage Table,删除数据(Delete Entity)
|
3月前
|
存储 网络安全 数据中心
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
【Azure 存储服务】App Service 访问开启防火墙的存储账号时遇见 403 (This request is not authorized to perform this operation.)
|
3月前
|
存储 JSON Java
【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题
【Azure 存储服务】Azure Storage Account Queue中因数据格式无法处理而在一个小时内不在可见的问题
|
3月前
|
存储 分布式计算 Hadoop
【Azure 存储服务】Hadoop集群中使用ADLS(Azure Data Lake Storage)过程中遇见执行PUT操作报错
【Azure 存储服务】Hadoop集群中使用ADLS(Azure Data Lake Storage)过程中遇见执行PUT操作报错
|
3月前
|
存储 缓存
【Azure 存储服务】访问Azure Blob File遇见400-Condition Headers not support错误的解决之路
【Azure 存储服务】访问Azure Blob File遇见400-Condition Headers not support错误的解决之路
|
3月前
|
存储 Java 关系型数据库
【Azure 存储服务】关于Storage Account Queue使用的几个问题
【Azure 存储服务】关于Storage Account Queue使用的几个问题
|
3月前
|
存储
【Azure 应用服务】Storage Queue触发Azure Function时报错 The input is not a valid Base-64 string
【Azure 应用服务】Storage Queue触发Azure Function时报错 The input is not a valid Base-64 string
|
3月前
|
存储 API C#
【Azure 存储服务】Storage Account Blob 使用REST API如何获取磁盘大小(Content-Length), IOPS信息
【Azure 存储服务】Storage Account Blob 使用REST API如何获取磁盘大小(Content-Length), IOPS信息
|
3月前
|
存储 Java API
【Azure 存储服务】存储在Azure Storage Table中的数据,如何按照条件进行删除呢?
【Azure 存储服务】存储在Azure Storage Table中的数据,如何按照条件进行删除呢?