本地文件上传至Blob存储报错求助
本地文件上传Blob存储报错排查
我尝试将本地文件复制上传至Blob存储,但执行代码时出现报错,无法定位问题所在。
相关代码
BlobServiceClient blobServiceClient = new BlobServiceClientBuilder().connectionString(connectStr).buildClient(); String containerName = "test-db"; BlobContainerClient containerClient = blobServiceClient.getBlobContainerClient(containerName); BlobClient blobClient = containerClient.getBlobClient(values); System.out.println("\nUploading to Blob storage as blob:\n\t" + blobClient.getUrl()); blobClient.uploadFromFile(localPath+values);
报错信息
java.io.FileNotFoundException: [拼接后的文件路径] (系统找不到指定的文件。) at java.base/java.io.FileInputStream.open0(Native Method) at java.base/java.io.FileInputStream.open(FileInputStream.java:219) at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157) at com.azure.storage.blob.BlobClient.uploadFromFile(BlobClient.java:474) // 后续调用栈省略
问题排查与解决方案
- 检查文件路径正确性:手动验证
localPath + values拼接后的完整路径,确认目标文件确实存在于该路径下 - 统一路径分隔符:不同操作系统路径分隔符存在差异,建议用
File.separator拼接路径,避免分隔符错误导致路径无效:String fullFilePath = localPath + File.separator + values; - 提前验证文件存在性:上传前先判断文件是否存在,输出明确提示:
File targetFile = new File(fullFilePath); if (!targetFile.exists()) { System.err.println("错误:目标文件不存在,路径为:" + fullFilePath); return; } blobClient.uploadFromFile(fullFilePath); - 检查文件权限:确保运行程序的用户对目标文件有读取权限,且文件未被其他进程占用
内容的提问来源于stack exchange,提问作者marshmellow
相关产品推荐
相关产品推荐

