业务需求是这样的:微软云+servlet开发一个图片上传的功能,要求输入一个订单号,并上传对应的图片,后台接收图片,并调用微软云接口,将图片传到微软云存储上。
开发过程中间遇到一些小问题,记录并展示出来,提供给相似的业务作参考。
1.连接微软云的图片接口
https://www.azure.cn/documentation/articles/storage-java-how-to-use-blob-storage
需要使用Microsoft Azure Storage Library for Java,如果是maven项目,可以直接使用github上的maven依赖,配置即可。由于我直接基于Servlet开发,所以我直接把maven对应的jar包下载到了本地,maven仓库链接:azure-storage-4.0.0.jar
之后按照文档去开发就可以了,因为我的业务只涉及到了上传,因此项目中只有上传的业务和一个用于查看的检索代码。
微软云部分代码如下:
设置微软云参数:
public class SaveImage extends HttpServlet {
public static final String storageConnectionString = "DefaultEndpointsProtocol=http;" + "AccountName=微软云账户名;"+ "AccountKey=分配的Key;"+"EndpointSuffix=core.chinacloudapi.cn";
private CloudStorageAccount storageAccount;
private CloudBlobClient blobClient;
private CloudBlobContainer container;
private BlobContainerPermissions containerPermissions;
...
}
在Servlet的init方法中初始化云连接
public void init() {
System.out.println("init azureCloud");
try {
// 获得微软云连接
storageAccount = CloudStorageAccount.parse(storageConnectionString);
// 获得Blob客户端
blobClient = storageAccount.createCloudBlobClient();
// 定义container
container = blobClient.getConta