使用Azure Java SDK上传块Blob时如何设置冷存储层?
在Azure Java SDK中为块Blob设置Cool存储层的正确方式
当然可以实现!你提到的BlobProperties.setStandardBlobTier()是SDK内部的受保护方法,确实不应该直接调用——Azure Java SDK已经提供了更友好的公开API来完成这个需求,不管是上传Blob时直接设置,还是上传完成后修改存储层都很方便。
方法一:上传Blob时直接设置Cool层
在上传前,通过对应的上传选项类(比如BlobUploadFromFileOptions、BlobParallelUploadOptions)的setTier()方法指定存储层即可。举个具体的代码示例:
// 先获取到BlockBlobClient实例(省略初始化client的步骤,比如通过BlobServiceClient创建) BlockBlobClient blockBlobClient = blobContainerClient.getBlobClient("你的blob名称").getBlockBlobClient(); // 创建上传选项并设置存储层为COOL BlobUploadFromFileOptions uploadOptions = new BlobUploadFromFileOptions("本地文件的路径"); uploadOptions.setTier(AccessTier.COOL); // 执行上传操作,此时Blob会直接以Cool层存储 blockBlobClient.uploadFromFile(uploadOptions);
方法二:上传完成后修改为Cool层
如果已经上传了Blob,也可以随时通过BlockBlobClient的setAccessTier()方法修改存储层:
// 针对已存在的Blob修改存储层 blockBlobClient.setAccessTier(AccessTier.COOL);
补充说明
AccessTier是SDK提供的枚举类,包含COOL、HOT、ARCHIVE等常用存储层选项,直接引用即可。- 确保你的Azure存储账户支持Cool层(标准通用v2存储账户或Blob存储账户都支持),否则会返回错误。
内容的提问来源于stack exchange,提问作者Anonymous1
相关产品推荐
相关产品推荐

