Java tutorial
/* * Copyright 2013-2015 cetvision.com. All rights reserved. * Support: http://www.cetvision.com * License: http://www.cetvision.com/license */ package com.dp2345.plugin.oss; import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; import com.aliyun.openservices.oss.OSSClient; import com.aliyun.openservices.oss.model.ListObjectsRequest; import com.aliyun.openservices.oss.model.OSSObjectSummary; import com.aliyun.openservices.oss.model.ObjectListing; import com.aliyun.openservices.oss.model.ObjectMetadata; import com.dp2345.FileInfo; import com.dp2345.entity.PluginConfig; import com.dp2345.plugin.StoragePlugin; /** * Plugin - * * @author CETVISION CORP * @version 2.0.3 */ @Component("ossPlugin") public class OssPlugin extends StoragePlugin { @Override public String getName() { return ""; } @Override public String getVersion() { return "1.0"; } @Override public String getAuthor() { return "CETVISION CORP"; } @Override public String getSiteUrl() { return "http://www.cetvision.com"; } @Override public String getInstallUrl() { return "oss/install.jhtml"; } @Override public String getUninstallUrl() { return "oss/uninstall.jhtml"; } @Override public String getSettingUrl() { return "oss/setting.jhtml"; } @Override public void upload(String path, File file, String contentType) { PluginConfig pluginConfig = getPluginConfig(); if (pluginConfig != null) { String accessId = pluginConfig.getAttribute("accessId"); String accessKey = pluginConfig.getAttribute("accessKey"); String bucketName = pluginConfig.getAttribute("bucketName"); InputStream inputStream = null; try { inputStream = new FileInputStream(file); OSSClient ossClient = new OSSClient(accessId, accessKey); ObjectMetadata objectMetadata = new ObjectMetadata(); objectMetadata.setContentType(contentType); objectMetadata.setContentLength(file.length()); ossClient.putObject(bucketName, StringUtils.removeStart(path, "/"), inputStream, objectMetadata); } catch (Exception e) { e.printStackTrace(); } finally { IOUtils.closeQuietly(inputStream); } } } @Override public String getUrl(String path) { PluginConfig pluginConfig = getPluginConfig(); if (pluginConfig != null) { String urlPrefix = pluginConfig.getAttribute("urlPrefix"); return urlPrefix + path; } return null; } @Override public List<FileInfo> browser(String path) { List<FileInfo> fileInfos = new ArrayList<FileInfo>(); PluginConfig pluginConfig = getPluginConfig(); if (pluginConfig != null) { String accessId = pluginConfig.getAttribute("accessId"); String accessKey = pluginConfig.getAttribute("accessKey"); String bucketName = pluginConfig.getAttribute("bucketName"); String urlPrefix = pluginConfig.getAttribute("urlPrefix"); try { OSSClient ossClient = new OSSClient(accessId, accessKey); ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName); listObjectsRequest.setPrefix(StringUtils.removeStart(path, "/")); listObjectsRequest.setDelimiter("/"); ObjectListing objectListing = ossClient.listObjects(listObjectsRequest); for (String commonPrefix : objectListing.getCommonPrefixes()) { FileInfo fileInfo = new FileInfo(); fileInfo.setName(StringUtils.substringAfterLast(StringUtils.removeEnd(commonPrefix, "/"), "/")); fileInfo.setUrl(urlPrefix + "/" + commonPrefix); fileInfo.setIsDirectory(true); fileInfo.setSize(0L); fileInfos.add(fileInfo); } for (OSSObjectSummary ossObjectSummary : objectListing.getObjectSummaries()) { if (ossObjectSummary.getKey().endsWith("/")) { continue; } FileInfo fileInfo = new FileInfo(); fileInfo.setName(StringUtils.substringAfterLast(ossObjectSummary.getKey(), "/")); fileInfo.setUrl(urlPrefix + "/" + ossObjectSummary.getKey()); fileInfo.setIsDirectory(false); fileInfo.setSize(ossObjectSummary.getSize()); fileInfo.setLastModified(ossObjectSummary.getLastModified()); fileInfos.add(fileInfo); } } catch (Exception e) { e.printStackTrace(); } } return fileInfos; } }