【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)-世界快看点
博客园 2023-05-08 22:37:37
问题描述

查看Java Storage SDK,想找一个uploadWithResponse 的示例代码,但是通过全网搜索,结果没有任何有帮助的代码。使用最近ChatGPT来寻求答案,得到非常有格式的内容:

问:java azure storage account to use uploadWithResponse

答:To use the uploadWithResponsemethod with the Azure Blob Storage client library for Java, follow these steps:


(相关资料图)

Add the Azure Storage Blob dependency to your project"s build file. For Maven, add the following to your pom.xml:
  com.azure  azure-storage-blob  12.14.2
Import the necessary classes:
import com.azure.storage.blob.BlobClient;import com.azure.storage.blob.BlobContainerClient;import com.azure.storage.blob.BlobServiceClient;import com.azure.storage.blob.BlobServiceClientBuilder;
Create a BlobServiceClientinstance using your storage account connection string:
String connectionString = "your_connection_string";BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectionString).buildClient();
Get a reference to the container and the blob you want to upload:
String containerName = "your_container_name";String blobName = "your_blob_name";BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName);BlobClient blobClient = containerClient.getBlobClient(blobName);
Upload a file using the uploadWithResponsemethod:
import com.azure.storage.blob.models.BlobUploadFromFileOptions;import java.nio.file.Path;import java.nio.file.Paths;Path filePath = Paths.get("path/to/your/file");BlobUploadFromFileOptions options = new BlobUploadFromFileOptions(filePath);blobClient.uploadWithResponse(options, null, null);

This will upload the file to the specified blob in the Azure Blob Storage container. Remember to replace the placeholders with your actual connection string, container name, blob name, and file path.

继续追问:BlobParallelUploadOptions with string content

答:(前面4步的答案一样,第五步的内容为)

Convert the string content to an InputStreamand set up BlobParallelUploadOptions:
String content = "your_string_content";InputStream inputStream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));long blockSize = 100 * 1024L; // 100 KBint maxConcurrency = 5;ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions(blockSize, maxConcurrency);BlobParallelUploadOptions options = new BlobParallelUploadOptions(inputStream).setParallelTra

在继续问:如何使用 “To avoid overwriting, pass "*" to setIfNoneMatch(String ifNoneMatch). how to use the setifnonematch”

答:(前面4步的答案一样,第五步的内容为)Set up BlobUploadOptionswith setIfNoneMatch:
BlobUploadOptions options = new BlobUploadOptions()    .setInputStream(inputStream)    .setLength((long) content.length())    .setHttpHeaders(new BlobHttpHeaders().setContentType("text/plain"))    .setRequestConditions(new BlobRequestConditions().setIfNoneMatch("*"));
Upload the string content using the uploadWithResponsemethod with BlobUploadOptions:
blobClient.uploadWithResponse(options, null, null);

This will upload the string content to the specified blob in the Azure Blob Storage container only if the blob does not already exist. If the blob exists, the upload will fail with a BlobStorageExceptiondue to the setIfNoneMatch("*")condition. Remember to replace the placeholders with your actual connection string, container name, blob name, and string content.

问题解答

根据ChatGPT提供的三部分信息,通过人力拼接和测试。得到了成功执行的uploadWithResponse代码:

uploadWithResponse示例代码
String storageConnectionString = "DefaultEndpointsProtocol=https;AccountName=***************";            String containerName = "******************";            String fileName  = "******************";                BlobServiceClient blobServiceClient = new BlobServiceClientBuilder()                                .connectionString(storageConnectionString)                                .buildClient();                BlobContainerClient containerClient = blobServiceClient.createBlobContainer(containerName);                BlobClient blobClient = containerClient.getBlobClient(fileName);                //准备content并且初始化blob parallel upload options对象               String content = "Test to append new content into exists blob! by blogs lu bian liang zhan deng ";                InputStream inputStream = new ByteArrayInputStream(content.getBytes(StandardCharsets.UTF_8));                BlobParallelUploadOptions options = new BlobParallelUploadOptions(inputStream, content.getBytes().length);                options.setRequestConditions(new BlobRequestConditions().setIfNoneMatch("*"));                Response rsp = blobClient.uploadWithResponse(options, null, null);                if(rsp.getStatusCode()==201)                {                        System.out.println("append content successful........");                                        }

说明:

1) content 中为需要写入Blob的内容

2) 把string转换为以UTF_8编码的input stream

3) 根据 input stream来初始化 blob paralle upload options对象

4) 设置 Request Conditions,当不需要重写的时候,可以使用 setIfNoneMatch("*")。如果操作的文件存在,则会出现Status code 409,BlobAlreadyExistss 提示。

5)调用upload with response方法,获取返回值,如果 返回值得status code为 201,表示Storage Account接受了这次 blob 内容的改动。

运行效果展示图参考资料

BlobClient Class:https://learn.microsoft.com/en-us/java/api/com.azure.storage.blob.BlobClient?view=azure-java-stable

BlobRequestConditions Class:https://learn.microsoft.com/en-us/java/api/com.azure.storage.blob.models.blobrequestconditions?view=azure-java-stable#com-azure-storage-blob-models-blobrequestconditions-setifnonematch(java-lang-string)

适用于 Java 的 Azure Blob 存储客户端库 :https://docs.azure.cn/zh-cn/storage/blobs/storage-quickstart-blobs-java?tabs=powershell%2Cmanaged-identity%2Croles-azure-portal%2Csign-in-azure-cli#upload-blobs-to-a-container

【Azure 存储服务】Java Storage SDK 调用 uploadWithResponse 代码示例(询问ChatGTP得代码原型后人力验证)-世界快看点

2023-05-08 22:37:37

环球微头条丨今年三九天是什么时间(今年三九天是什么时候)

2023-05-08 22:26:23

个人所得税税负率怎么算(所得税税负率怎么算)

2023-05-08 22:17:47

儿童过敏性紫癜怎么治疗才快恢复(儿童过敏性紫癜的最佳治疗方法)

2023-05-08 22:03:37

世界报道:走账怎么做账(走账怎么做会计分录)

2023-05-08 22:12:53

万用表兆欧符号(兆欧符号)

2023-05-08 22:06:59

当前关注:快穿之男主总想追求我

2023-05-08 21:55:27

广西展演民族文艺节目 集中展示各民族文艺创作新成果

2023-05-08 22:08:06

全球快资讯丨工商银行与外汇交易中心合作打造“智能交易助手”共建iDeal生态

2023-05-08 22:07:42

银河证券:银行板块面临估值重塑机遇

2023-05-08 21:46:04

世界信息:东吴证券:继续看好光伏逆变器、组件、新技术方向、部分辅材龙头

2023-05-08 21:49:09

天天实时:科大讯飞、中国船舶等27股获特大单资金净流入超2亿元

2023-05-08 21:56:36

网信部门工作组进驻斗鱼平台

2023-05-08 21:47:45

今天打开个税APP,我直接人麻了!

2023-05-08 22:02:12

热资讯!安永报告:中国对外直接投资开局良好

2023-05-08 21:45:02

天天新资讯:中炬高新控股股东中山润田所持1000万股将被司法拍卖

2023-05-08 21:30:04

环球观天下!越秀地产1-4月份合同销售额约572亿 完成年度目标43%

2023-05-08 21:45:17

存在色情、低俗等问题 网信部门工作组进驻斗鱼平台_世界百事通

2023-05-08 21:46:06

北京豪宅“顶流”万柳书院75套住宅被抵押拍卖 最贵在售一套1.3亿 世界快消息

2023-05-08 21:48:36

质监局属于政府哪个部门(质监局是做什么的)_每日消息

2023-05-08 21:10:36

幼儿园厨房外来人员登记表(外来人员登记表)-全球聚看点

2023-05-08 21:03:20

鹿角粉的功效与作用及禁忌(鹿角粉的功效与作用)|当前资讯

2023-05-08 21:26:51

每日讯息!360桌面怎么关闭锁屏壁纸(360桌面怎么用)

2023-05-08 21:26:35

改土归流是什么意思|每日热闻

2023-05-08 21:17:15

全球观热点:世界500强老板被控制,涉嫌“非吸”200亿,8000人踩雷

2023-05-08 21:15:16

供给侧改革,救了爱优腾一命

2023-05-08 21:19:04

四川航空:三个唯一? 环球看热讯

2023-05-08 21:08:08

当前热文:“万亿俱乐部”城市洗牌,谁急了?

2023-05-08 21:20:46

新能源汽车下沉寻“蓝海”|今日热议

2023-05-08 20:56:58

天天快看:「视频」中央宣传部等部门部署开展2023年文化科技卫生“三下乡”活动

2023-05-08 21:02:38

快看:香港名媛碎尸案再开庭:发现新证物具体是什么情况

2023-05-08 21:10:46

鹏华中证0-4年期地方政府债ETF:基金份额持有人数量已连续40个工作日不满200人

2023-05-08 21:03:35

大金重工子公司获得约5.47亿欧元海上风电单桩基础订单|世界简讯

2023-05-08 20:33:23

天风证券给予顺络电子买入评级 短期业绩承压 新兴产业布局扩展成长空间 环球关注

2023-05-08 20:47:53

*ST文化:深交所拟决定终止公司股票上市交易

2023-05-08 20:48:19

山西首座重卡换电站开业投运 豪尔赛旗下豪能汇进军绿电交通产业 天天亮点

2023-05-08 20:40:57

全球央行掀“购金热” 中国连续6个月增持|快看

2023-05-08 20:29:06

通合科技接待天风证券等多家机构调研

2023-05-08 20:33:41

“理赔员”喊你微信领取“百万保障”?小心诈骗|环球速看料

2023-05-08 20:17:16

天天热讯:论文分类号是什么意思(分类号是什么)

2023-05-08 20:25:03

世界微速讯:icould.co(icould com登陆入口)

2023-05-08 20:14:51

表格对照单元格内容(对照表格式) 环球今日讯

2023-05-08 20:10:43

不同意客户降价回复函(拒绝客户降价回复函)-每日简讯

2023-05-08 20:27:31

星空之子图片(星空之子)

2023-05-08 20:19:40

世界简讯:越南经济崩了?一季度GDP3.32%,为十二年以来第二低一季度数据

2023-05-08 20:12:48

贸易商是什么意思_当前热门

2023-05-08 20:07:49

热头条丨ST云城:5月10日起撤销其他风险警示

2023-05-08 20:05:26

ST云城:5月10日起撤销其他风险警示 今日快讯

2023-05-08 20:09:07

快播:民生银行:经营活动一切正常

2023-05-08 19:57:15

*ST太安:公司股票交易被叠加实施其他风险警示 天天热点评

2023-05-08 20:00:31

新一代试管婴儿技术问世_今日聚焦

2023-05-08 19:44:35

中化国际:董事长李凡荣因工作原因辞职_快讯

2023-05-08 19:56:43

日本高龄就业人口近十年增五成,超九百万人65岁以上仍工作-每日速讯

2023-05-08 20:06:35

【新视野】网购家居品,同品不同价的差别到底有多大?看完就感觉离谱

2023-05-08 19:53:23

隐形独角兽芯谷微冲刺科创板 “最牛风投城市”合肥再迎IPO

2023-05-08 19:39:25

中科飞测:发行价格为23.6元/股 5月10日网上申购 每日快看

2023-05-08 19:31:54

中金公司再遭海尔金控减持:持股比例将跌破5% 或可套现近40亿

2023-05-08 19:33:21

光线传媒:光线控股累计质押股数约为3.71亿股 观天下

2023-05-08 19:50:21

一季度白酒业绩迎开门红 山西汾酒、泸州老窖业绩增速领先_焦点讯息

2023-05-08 19:35:00

长安董事长朱华荣:到2025年将推出27款新能源汽车-全球头条

2023-05-08 19:27:52

mdf板材有毒吗(MDF什么板)|全球视点

2023-05-08 19:15:21

protector是什么意思中文(protector)|当前时讯

2023-05-08 19:06:09

个所税申报软件下载(个所税)_世界快消息

2023-05-08 19:25:58

2021年世界高血压日是哪一天(世界高血压日是哪一天)

2023-05-08 19:26:06

全球今头条!中标服务费的标准(中标服务费计算公式)

2023-05-08 19:21:44

世界新消息丨宁夏高龄养老金调整吗2023 今年城乡居民基础养老金多多少?

2023-05-08 19:14:34

居民养老和职工养老都交了钱可以退一个吗

2023-05-08 19:05:05

吊车吊臂倒塌致1死,究竟是怎么一回事?

2023-05-08 19:01:26

天天最资讯丨天音控股:筹划向特定对象发行股票事项

2023-05-08 19:05:48

国联证券被质疑变相突破“一参一控” 股价涨2.42%

2023-05-08 18:45:51

快资讯丨经纬股份龙虎榜:机构净卖出1041.58万元

2023-05-08 18:56:18

南华期货龙虎榜:机构净卖出4344.12万元-即时看

2023-05-08 19:06:07

逐浪AIGC丨对话科大讯飞刘庆峰:以技术抹平时间差 星火认知大模型将带来惊喜

2023-05-08 18:48:09

福莱新材:可转债转股价格调整为13.82元/股

2023-05-08 18:30:08

工信部批复这一试验

2023-05-08 18:34:53

聚焦实体经济重点领域 截至3月末农业银行公司类贷款余额突破12万亿元

2023-05-08 18:42:32

全球微资讯!注意!京能热力:陈秀明及其一致行动人计划减持公司股份约1217万股

2023-05-08 18:38:13

国务院联防联控机制新闻发布会:目前新冠感染以无症状或轻型病例为主

2023-05-08 18:24:28

当前快讯:厦门市两公司在旅游产品上“玩花招”

2023-05-08 18:41:46

坎坎伐檀兮是什么意思_坎坎伐檀

2023-05-08 18:23:30

北大青鸟中关村校区在线咨询(北大青鸟中关村校区)

2023-05-08 18:07:10

精选!360设置自动关机(360怎么设置自动关机)

2023-05-08 18:19:06

wps文字竖排居中封面(wps文字竖排)

2023-05-08 18:07:48

固定单价合同和固定总价合同的优缺点(固定总价合同与固定单价合同的区别)

2023-05-08 18:06:15

全球即时看!配售是什么意思(配售)

2023-05-08 18:16:02

比亚迪长沙工厂现“批量辞职”,有员工收到“本月离职名额已满”答复

2023-05-08 18:12:48

iPhone 14 Pro Max烧屏 苹果甩锅:没问题! 环球热点

2023-05-08 17:55:20

美单方面退出伊核协议已五年 伊朗民众:美滥用制裁霸凌成性

2023-05-08 18:14:54

天天报道:运动鞋侧面怎么画漫复杂

2023-05-08 18:04:48

全球热资讯!科大讯飞龙虎榜:机构净买入1.23亿元

2023-05-08 18:04:28

中信银行涨停 机构净卖出3.87亿元

2023-05-08 17:55:40

【独家】民生银行龙虎榜:三个交易日机构净买入2.3亿元

2023-05-08 17:54:46

环球快消息!南方传媒龙虎榜:机构净买入1.17亿元

2023-05-08 17:50:20

世界热文:周杰伦申请限消痘博士,后者曾被强制执行64万

2023-05-08 18:07:21

APP被苹果商店下架?陌陌回应:已重新上架

2023-05-08 17:49:05

中钢国际涨停 三个交易日机构净买入1.62亿元-关注

2023-05-08 17:54:23

当前播报:陌陌回应App在苹果商店下架:是技术问题

2023-05-08 17:47:07

中国银行涨停 机构净买入4.01亿元 微头条

2023-05-08 17:53:13

中船科技涨停 三个交易日机构净买入2.75亿元-当前速读

2023-05-08 17:48:51

全球速递!佳发教育:袁斌累计质押股数为5615万股

2023-05-08 17:36:09