azure - 上传后 Azure 存储 zip 文件损坏(使用适用于 Java 的 Azure 存储 Blob 客户端库)
问题描述
问题:从数据生成的 csv 文件的 zip 文件在上传到 Azure Blob 存储后似乎已损坏。
上传前的 zip 文件如下所示:
在上传期间,我使用适用于 Java 的 Azure Storage Blob 客户端库(v. 12.7.0,但我也尝试过以前的版本)。这是我使用的代码(类似于SDK 自述文件中提供的示例):
public void uploadFileFromPath(String pathToFile, String blobName) {
BlobClient blobClient = blobContainerClient.getBlobClient(blobName);
blobClient.uploadFromFile(pathToFile);
}
我得到上传的文件:
当我直接从存储资源管理器下载文件时,文件已经损坏。我做错了什么?
解决方案
根据您的描述,我建议您使用以下方法上传您的 zip 文件
public void uploadFromFile(String filePath, ParallelTransferOptions parallelTransferOptions, BlobHttpHeaders headers, Map<String,String> metadata, AccessTier tier, BlobRequestConditions requestConditions, Duration timeout)
我们可以使用方法来设置内容类型
例如
BlobHttpHeaders headers = new BlobHttpHeaders()
.setContentType("application/x-zip-compressed");
Integer blockSize = 4* 1024 * 1024; // 4MB;
ParallelTransferOptions parallelTransferOptions = new ParallelTransferOptions(blockSize, null, null);
blobClient.uploadFromFile(pathToFile,parallelTransferOptions,headers,null, AccessTier.HOT, null, null);
更多详细信息,请参阅文档
推荐阅读
- r - 如何使用 R 将每天 1 列的数据集转换为只有 1 个日期列(天)
- android - 将自定义视图动态添加到 RelativeLayout 时出现 Logcat 错误
- flutter - 如何在按钮单击时在两个图像之间切换?
- excel - 如何通过excel中的每一列(包含信息)运行代码?
- typescript - NestJS 初始化和传递请求上下文的最佳实践是什么
- server - 使用 OMNeT++ 解决服务器拥塞的 ddos
- python - Django REST API 中的内部函数 raise
- datetime - TIMESTAMP 上的 BIGQUERY TIMEZONE 转换。CET 到 UTC
- db2 - 尝试使用 Python 连接 DB2 上的表时出错 (SQL0332N)
- laravel - laravel 表单未提交