通过代码创建容器时如何设置公共访问类型?相关参数如何使用?
关于
createWithResponse容器创建方法的参数说明及使用示例 参数含义说明
Map<String, String> metadata:容器的自定义元数据,为字符串类型的键值对,用于存储和业务相关的自定义标识,比如容器所属业务、创建人、用途等,无相关需求时可传空Map或null。PublicAccessType accessType:容器的公共访问权限配置,需要公开访问时可选择两类枚举值:PublicAccessType.BLOB表示仅Blob文件可公开访问,无法枚举容器内的文件列表;PublicAccessType.CONTAINER表示容器本身和内部Blob列表、文件都支持公开访问,可按需选择。Duration timeout:单次请求的超时时间,传null时会使用SDK内置的全局默认超时配置,不会完全取消超时限制。如果需要更长的超时时间,建议手动指定明确的时长,避免请求被默认逻辑中断。Context context:本次请求的上下文对象,用于传递需要附加到HTTP请求中的额外信息,比如自定义请求头、链路追踪参数等,无特殊需求时直接传Context.NONE即可。
使用示例
最简调用示例(无自定义配置)
import com.azure.storage.blob.models.PublicAccessType; import com.azure.core.util.Context; import java.util.Collections; // 无自定义元数据、使用默认超时、无额外上下文的公开容器创建 blobContainerClient.createWithResponse( Collections.emptyMap(), PublicAccessType.BLOB, null, Context.NONE );
带自定义参数的调用示例
import com.azure.storage.blob.models.PublicAccessType; import com.azure.core.util.Context; import java.time.Duration; import java.util.HashMap; import java.util.Map; // 配置自定义元数据 Map<String, String> containerMetadata = new HashMap<>(); containerMetadata.put("department", "data-analysis"); containerMetadata.put("creator", "ops003"); containerMetadata.put("usage", "public-resource-storage"); // 配置自定义上下文:添加自定义请求ID用于链路追踪 Context customContext = new Context("x-ms-client-request-id", "pub-container-20240520-001"); // 执行创建请求 blobContainerClient.createWithResponse( containerMetadata, PublicAccessType.CONTAINER, Duration.ofSeconds(30), // 手动指定30秒超时 customContext );
补充说明
如果需要完全不限制超时时间,不建议传null,可手动设置一个足够大的Duration值,比如Duration.ofHours(2),但该操作容易导致请求长期挂起,非特殊场景不推荐使用。
内容的提问来源于stack exchange,提问作者Jara Dominguez
相关产品推荐
相关产品推荐

