Commit 661008eb by yao.xiao

增加-经纪人设置保存(未完成),阿里部分代码(oss)

parent 65854245
......@@ -94,7 +94,7 @@
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>1.2.5</version>
</dependency>
<!--
<!--
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
......@@ -115,6 +115,12 @@
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
</dependency>
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>2.8.2</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
......@@ -5,8 +5,7 @@ import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
import com.yd.api.practitioner.vo.setting.SettingQueryRequestVO;
import com.yd.api.practitioner.vo.setting.SettingQueryResponseVO;
import com.yd.api.practitioner.vo.setting.*;
import com.yd.api.result.JsonResult;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
......@@ -69,25 +68,25 @@ public class PractitionerController {
* @param requestVO
* @return responseVO
*/
// @RequestMapping("/settingSave")
// public Object mySettingSave(@RequestBody SettingSaveRequestVO requestVO) throws Exception {
// JsonResult result = new JsonResult();
// SettingSaveResponseVO responseVO = practitionerService.settingSave(requestVO);
// result.setData(responseVO);
// result.addResult(responseVO);
// return result;
// }
@RequestMapping("/settingSave")
public Object mySettingSave(@RequestBody SettingSaveRequestVO requestVO) throws Exception {
JsonResult result = new JsonResult();
SettingSaveResponseVO responseVO = practitionerService.settingSave(requestVO);
result.setData(responseVO);
result.addResult(responseVO);
return result;
}
/**
* 删除经纪人照片
*/
// @RequestMapping("/imgDelete")
// public Object imgDelete(@RequestBody ImgDeleteRequestVO requestVO){
// JsonResult result = new JsonResult();
// ImgDeleteResponseVO responseVO = practitionerService.imgDelete(requestVO);
// result.setData(responseVO);
// result.addResult(responseVO);
// return result;
// }
@RequestMapping("/imgDelete")
public Object imgDelete(@RequestBody ImgDeleteRequestVO requestVO){
JsonResult result = new JsonResult();
ImgDeleteResponseVO responseVO = practitionerService.imgDelete(requestVO);
result.setData(responseVO);
result.addResult(responseVO);
return result;
}
}
......@@ -4,8 +4,7 @@ import com.yd.api.practitioner.vo.login.PractitionerLoginRequestVO;
import com.yd.api.practitioner.vo.login.PractitionerLoginResponseVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankRequestVO;
import com.yd.api.practitioner.vo.rank.PractitionerRankResponseVO;
import com.yd.api.practitioner.vo.setting.SettingQueryRequestVO;
import com.yd.api.practitioner.vo.setting.SettingQueryResponseVO;
import com.yd.api.practitioner.vo.setting.*;
import org.springframework.stereotype.Service;
@Service("practitionerService")
......@@ -31,4 +30,18 @@ public interface PractitionerService {
* @return
*/
SettingQueryResponseVO settingQuery(SettingQueryRequestVO requestVO);
/**
* 经纪人删除头像生活照
* @param requestVO
* @return
*/
ImgDeleteResponseVO imgDelete(ImgDeleteRequestVO requestVO);
/**
* 保存经纪人设置头像,生活照
* @param requestVO
* @return
*/
SettingSaveResponseVO settingSave(SettingSaveRequestVO requestVO) throws Exception;
}
......@@ -23,4 +23,23 @@ public interface AclFileUploadDALService {
* @return
*/
List<AclFileUpload> findByAclFileUpload(AclFileUpload fileUpload);
/**
* 通过id查找ag_acl_file_upload信息
* @param fileId
* @return
*/
AclFileUpload findFileUploadById(Long fileId);
/**
* 通过id更新ag_acl_file_upload
* @param fileUpload
*/
void updateFileUpload(AclFileUpload fileUpload);
/**
* 保存ag_acl_file_upload
* @param aclFileUpload
*/
void saveFileUpload(AclFileUpload aclFileUpload);
}
......@@ -32,4 +32,19 @@ public class AclFileUploadDALServiceImpl implements AclFileUploadDALService {
public List<AclFileUpload> findByAclFileUpload(AclFileUpload fileUpload) {
return aclFileUploadMapper.findByAclFileUpload(fileUpload);
}
@Override
public AclFileUpload findFileUploadById(Long fileId) {
return aclFileUploadMapper.selectByPrimaryKey(fileId);
}
@Override
public void updateFileUpload(AclFileUpload fileUpload) {
aclFileUploadMapper.updateByPrimaryKeySelective(fileUpload);
}
@Override
public void saveFileUpload(AclFileUpload aclFileUpload) {
aclFileUploadMapper.insertSelective(aclFileUpload);
}
}
package com.yd.dal.service.practitioner;
import com.yd.dal.entity.customer.AclFileUpload;
import com.yd.dal.entity.practitioner.AclPractitionerInfo;
import com.yd.dal.entity.practitioner.PractitionerBasicInfo;
import com.yd.dal.entity.practitioner.PractitionerInfo;
......@@ -55,4 +56,11 @@ public interface PractitionerDALService {
* @return
*/
AclPractitionerInfo findPractitionerById(Long practitionerId);
/**
* 通过id更新practitioner
* @param practitioner
*/
void updatePractitioner(AclPractitionerInfo practitioner);
}
......@@ -71,4 +71,10 @@ public class PractitionerDALServiceImpl implements PractitionerDALService {
public AclPractitionerInfo findPractitionerById(Long practitionerId) {
return aclPractitionerMapper.selectByPrimaryKey(practitionerId);
}
@Override
@TargetDataSource(dataSourceKey = DataSourceKey.DB_MASTER)
public void updatePractitioner(AclPractitionerInfo practitioner) {
aclPractitionerMapper.updateByPrimaryKeySelective(practitioner);
}
}
package com.yd.rmi.ali.oss.service;
import com.yd.rmi.ali.oss.vo.OssRequestVO;
import com.yd.rmi.ali.oss.vo.OssResponseVO;
import java.io.InputStream;
public interface OssService {
String putFileToOss(String string, String key, InputStream is) throws Exception;
}
package com.yd.rmi.ali.oss.service.impl;
import com.aliyun.oss.model.*;
import com.yd.api.result.CommonResult;
import com.yd.rmi.ali.oss.service.OssService;
import com.yd.rmi.ali.oss.vo.OssOperateTypeEnum;
import com.yd.rmi.ali.oss.vo.OssRequestVO;
import com.yd.rmi.ali.oss.vo.OssResponseVO;
import com.yd.rmi.ali.ossinterf.service.AliOssInterfService;
import com.yd.util.CommonUtil;
import com.yd.util.config.ZHBErrorConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.List;
@Service("ossService")
public class OssServiceImpl implements OssService {
// @Autowired
// private SystemConfigService systemConfigService;
@Autowired
private AliOssInterfService aliOssInterfService;
public boolean doesBucketExist(String bucketName){
// String endpoint = systemConfigService.getSingleConfigValue("ALI_OSS_ENDPOINT");
// String accessKeyId = systemConfigService.getSingleConfigValue("ALI_OSS_ACCESS_KEY_ID");
// String accessKeySecret = systemConfigService.getSingleConfigValue("ALI_OSS_ACCESS_KEY_SECRET");
// aliOssInterfService.initAttribute(endpoint, accessKeyId, accessKeySecret);
return aliOssInterfService.doesBucketExist(bucketName);
}
/**
* 上传文件到OSS
* @param bucketName
* @param key
* @param is
* @return
*/
@Override
public String putFileToOss(String bucketName, String key, InputStream is) throws Exception{
String url = null;
if(CommonUtil.isNullOrBlank(key) || is == null){
return null;
}
// if(CommonUtil.isNullOrBlank(bucketName)){
// bucketName = systemConfigService.getSingleConfigValue("ALI_OSS_BUCKET_NAME");
// }
OssRequestVO ossRequestVO = new OssRequestVO();
File file = null;
OutputStream os = null;
try{
file = File.createTempFile("tmp", null);
// System.out.println("文件是否存在:"+file.exists()+"---------------临时文件路径:"+file.getAbsolutePath());
os = new FileOutputStream(file);
int len = 0;
byte[] bytes = new byte[1024];
while((len = is.read(bytes) ) > 0){
os.write(bytes, 0, len);
os.flush();
}
ossRequestVO.setOperateType(OssOperateTypeEnum.PUT_OBJECT.getCode());
ossRequestVO.setBucketName(bucketName);
ossRequestVO.setKey(key);
ossRequestVO.setFile(file);
OssResponseVO ossResponseVO = ossOperate(ossRequestVO);
ossRequestVO.setOperateType(OssOperateTypeEnum.GENERATE_URL.getCode());
ossResponseVO = ossOperate(ossRequestVO);
url = ossResponseVO.getUrl();
}catch(Exception e){
throw e;
}finally{
if(os != null){try{os.close();}catch(Exception e){e.printStackTrace();}}
if(is != null){try{is.close();}catch(Exception e){e.printStackTrace();}}
if(file != null){file.delete();}
// System.out.println("文件是否存在:"+file.exists());
}
return url;
}
private OssResponseVO ossOperate(OssRequestVO ossRequestVO) {
OssResponseVO ossResponseVO = new OssResponseVO();
boolean success = true;
String message = ZHBErrorConfig.getErrorInfo("800000");
if(ossRequestVO == null || CommonUtil.isNullOrBlank(ossRequestVO.getOperateType())){
String[] params = {"operateType"};
ossResponseVO.setCommonResult(new CommonResult(false,ZHBErrorConfig.getErrorInfo("610001", params)));
return ossResponseVO;
}
String operateType = ossRequestVO.getOperateType();
String bucketName = ossRequestVO.getBucketName();
CannedAccessControlList cannedAccessControlList = ossRequestVO.getCannedAccessControlList();
String key = ossRequestVO.getKey();
File file = ossRequestVO.getFile();
String checkMessage = "";
if(OssOperateTypeEnum.DOES_BUCKET_EXIST.getCode().equals(operateType)
|| OssOperateTypeEnum.GET_BUCKET_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.CREATE_BUCKET.getCode().equals(operateType)
|| OssOperateTypeEnum.SET_BUCKET_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.DOES_OBJECT_EXIST.getCode().equals(operateType)
|| OssOperateTypeEnum.GET_OBJECT_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.PUT_OBJECT.getCode().equals(operateType)
|| OssOperateTypeEnum.SET_OBJECT_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.GET_OBJECT.getCode().equals(operateType)
|| OssOperateTypeEnum.LIST_OBJECTS.getCode().equals(operateType)
|| OssOperateTypeEnum.GENERATE_URL.getCode().equals(operateType)
|| OssOperateTypeEnum.DELETE_OBJECTS.getCode().equals(operateType)){
if(CommonUtil.isNullOrBlank(bucketName)){
String[] params = {"bucketName"};
checkMessage += ZHBErrorConfig.getErrorInfo("610001", params);
}
if(OssOperateTypeEnum.DOES_OBJECT_EXIST.getCode().equals(operateType)
|| OssOperateTypeEnum.GET_OBJECT_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.PUT_OBJECT.getCode().equals(operateType)
|| OssOperateTypeEnum.SET_OBJECT_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.GET_OBJECT.getCode().equals(operateType)
|| OssOperateTypeEnum.GENERATE_URL.getCode().equals(operateType)
|| OssOperateTypeEnum.DELETE_OBJECTS.getCode().equals(operateType)){
if(CommonUtil.isNullOrBlank(key)){
String[] params = {"key"};
checkMessage += ZHBErrorConfig.getErrorInfo("610001", params);
}
}
if(OssOperateTypeEnum.SET_BUCKET_ACL.getCode().equals(operateType)
|| OssOperateTypeEnum.SET_OBJECT_ACL.getCode().equals(operateType)){
if(cannedAccessControlList == null){
String[] params = {"cannedAccessControlList"};
checkMessage += ZHBErrorConfig.getErrorInfo("610001", params);
}
}
if(OssOperateTypeEnum.PUT_OBJECT.getCode().equals(operateType)){
if(file == null){
String[] params = {"file"};
checkMessage += ZHBErrorConfig.getErrorInfo("610001", params);
}
}
}
if(!CommonUtil.isNullOrBlank(checkMessage)){
ossResponseVO.setCommonResult(new CommonResult(false,checkMessage));
return ossResponseVO;
}
if(OssOperateTypeEnum.DOES_BUCKET_EXIST.getCode().equals(operateType)){
boolean isExists = aliOssInterfService.doesBucketExist(bucketName);
ossResponseVO.setExists(isExists);
}else if(OssOperateTypeEnum.GET_BUCKET_ACL.getCode().equals(operateType)){
AccessControlList accessControlList = aliOssInterfService.getBucketAcl(bucketName);
ossResponseVO.setAccessControlList(accessControlList);
}else if(OssOperateTypeEnum.CREATE_BUCKET.getCode().equals(operateType)){
aliOssInterfService.createBucket(bucketName, cannedAccessControlList);
}else if(OssOperateTypeEnum.SET_BUCKET_ACL.getCode().equals(operateType)){
aliOssInterfService.setBucketAcl(bucketName, cannedAccessControlList);
}else if(OssOperateTypeEnum.LIST_BUCKETS.getCode().equals(operateType)){
BucketList bucketList = aliOssInterfService.listBuckets();
ossResponseVO.setBucketList(bucketList);
}else if(OssOperateTypeEnum.DOES_OBJECT_EXIST.getCode().equals(operateType)){
boolean isExists = aliOssInterfService.doesObjectExist(bucketName, key);
ossResponseVO.setExists(isExists);
}else if(OssOperateTypeEnum.GET_OBJECT_ACL.getCode().equals(operateType)){
ObjectAcl objectAcl = aliOssInterfService.getObjectAcl(bucketName, key);
ossResponseVO.setObjectAcl(objectAcl);
}else if(OssOperateTypeEnum.PUT_OBJECT.getCode().equals(operateType)){
aliOssInterfService.putObject(bucketName, key, file);
}else if(OssOperateTypeEnum.SET_OBJECT_ACL.getCode().equals(operateType)){
aliOssInterfService.setObjectAcl(bucketName, key, cannedAccessControlList);
}else if(OssOperateTypeEnum.GET_OBJECT.getCode().equals(operateType)){
OSSObject ossObject = aliOssInterfService.getObject(bucketName, key);
ossResponseVO.setOssObject(ossObject);
}else if(OssOperateTypeEnum.LIST_OBJECTS.getCode().equals(operateType)){
ObjectListing objectListing = aliOssInterfService.listObjects(bucketName, ossRequestVO.getPrefix());
ossResponseVO.setObjectListing(objectListing);
}else if(OssOperateTypeEnum.GENERATE_URL.getCode().equals(operateType)){
String url = aliOssInterfService.generateUrl(bucketName, key);
ossResponseVO.setUrl(url);
}else if(OssOperateTypeEnum.DELETE_OBJECTS.getCode().equals(operateType)){
List<String> keys = new ArrayList<String>();
keys.add(key);
aliOssInterfService.deleteObjects(bucketName, keys);
}
ossResponseVO.setCommonResult(new CommonResult(success,message));
return ossResponseVO;
}
}
package com.yd.rmi.ali.oss.vo;
public enum OssOperateTypeEnum {
/**
* 判断存储空间是否存在
*/
DOES_BUCKET_EXIST("doesBucketExist","判断存储空间是否存在"),
/**
* 获取存储空间访问权限
*/
GET_BUCKET_ACL("getBucketAcl","获取存储空间访问权限"),
/**
* 创建存储空间
*/
CREATE_BUCKET("createBucket","创建存储空间"),
/**
* 列出当前访问域名下的所有存储空间
*/
LIST_BUCKETS("listBuckets","列出当前访问域名下的所有存储空间"),
/**
* 设置存储空间访问权限
*/
SET_BUCKET_ACL("setBucketAcl","设置存储空间访问权限"),
/**
* 判断对象是否存在
*/
DOES_OBJECT_EXIST("doesObjectExist","判断对象是否存在"),
/**
* 获取对象的访问权限
*/
GET_OBJECT_ACL("getObjectAcl","获取对象的访问权限"),
/**
* 上传文件
*/
PUT_OBJECT("putObject","上传文件"),
/**
* 设置对象访问权限
*/
SET_OBJECT_ACL("setObjectAcl","设置对象访问权限"),
/**
* 下载对象
*/
GET_OBJECT("getObject","下载对象"),
/**
* 列出当前访问域名下的所有对象
*/
LIST_OBJECTS("listObjects","列出当前访问域名下的所有对象"),
/**
* 获取对象外网访问URL
*/
GENERATE_URL("generateUrl","获取对象外网访问URL"),
/**
* 删除文件
*/
DELETE_OBJECTS("deleteObjects","删除文件");
private String code;
private String message;
public String getCode() {
return code;
}
public String getMessage() {
return message;
}
private OssOperateTypeEnum(String code,String message) {
this.code=code;
this.message=message;
}
}
package com.yd.rmi.ali.oss.vo;
import com.aliyun.oss.model.CannedAccessControlList;
import java.io.File;
public class OssRequestVO {
private String operateType;//操作类型,详见OssOperateTypeEnum
private String endpoint;//访问域名
private String accessKeyId;//accessKeyId
private String accessKeySecret;//accessKeySecret
private String bucketName;//存储空间名
private CannedAccessControlList cannedAccessControlList;//权限
private String key;//对象名
private File file;//文件
private String prefix;//获取对象列表时的前缀
private Long idBegin;//起始ID
private Long idEnd;//终止ID
/**
* 获取属性 operateType 操作类型,详见OssOperateTypeEnum
* @return operateType
*/
public String getOperateType(){
return this.operateType;
}
/**
* 属性赋值 operateType 操作类型,详见OssOperateTypeEnum
* @param operateType
*/
public void setOperateType(String operateType){
this.operateType = operateType;
}
/**
* 获取属性 endpoint 访问域名
* @return endpoint
*/
public String getEndpoint(){
return this.endpoint;
}
/**
* 属性赋值 endpoint 访问域名
* @param endpoint
*/
public void setEndpoint(String endpoint){
this.endpoint = endpoint;
}
/**
* 获取属性 accessKeyId accessKeyId
* @return accessKeyId
*/
public String getAccessKeyId(){
return this.accessKeyId;
}
/**
* 属性赋值 accessKeyId accessKeyId
* @param accessKeyId
*/
public void setAccessKeyId(String accessKeyId){
this.accessKeyId = accessKeyId;
}
/**
* 获取属性 accessKeySecret accessKeySecret
* @return accessKeySecret
*/
public String getAccessKeySecret(){
return this.accessKeySecret;
}
/**
* 属性赋值 accessKeySecret accessKeySecret
* @param accessKeySecret
*/
public void setAccessKeySecret(String accessKeySecret){
this.accessKeySecret = accessKeySecret;
}
/**
* 获取属性 bucketName 存储空间名
* @return bucketName
*/
public String getBucketName(){
return this.bucketName;
}
/**
* 属性赋值 bucketName 存储空间名
* @param bucketName
*/
public void setBucketName(String bucketName){
this.bucketName = bucketName;
}
/**
* 获取属性 cannedAccessControlList 权限
* @return cannedAccessControlList
*/
public CannedAccessControlList getCannedAccessControlList(){
return this.cannedAccessControlList;
}
/**
* 属性赋值 cannedAccessControlList 权限
* @param cannedAccessControlList
*/
public void setCannedAccessControlList(CannedAccessControlList cannedAccessControlList){
this.cannedAccessControlList = cannedAccessControlList;
}
/**
* 获取属性 key 对象名
* @return key
*/
public String getKey(){
return this.key;
}
/**
* 属性赋值 key 对象名
* @param key
*/
public void setKey(String key){
this.key = key;
}
/**
* 获取属性 file 文件
* @return file
*/
public File getFile(){
return this.file;
}
/**
* 属性赋值 file 文件
* @param file
*/
public void setFile(File file){
this.file = file;
}
/**
* 获取属性 prefix 获取对象列表时的前缀
* @return prefix
*/
public String getPrefix(){
return this.prefix;
}
/**
* 属性赋值 prefix 获取对象列表时的前缀
* @param prefix
*/
public void setPrefix(String prefix){
this.prefix = prefix;
}
/**
* 获取属性 idBegin 起始ID
* @return idBegin
*/
public Long getIdBegin(){
return this.idBegin;
}
/**
* 属性赋值 idBegin 起始ID
* @param idBegin
*/
public void setIdBegin(Long idBegin){
this.idBegin = idBegin;
}
/**
* 获取属性 idEnd 终止ID
* @return idEnd
*/
public Long getIdEnd(){
return this.idEnd;
}
/**
* 属性赋值 idEnd 终止ID
* @param idEnd
*/
public void setIdEnd(Long idEnd){
this.idEnd = idEnd;
}
}
package com.yd.rmi.ali.oss.vo;
import com.aliyun.oss.model.*;
import com.yd.api.result.CommonResult;
public class OssResponseVO {
private String operateType;//操作类型,详见OssOperateTypeEnum
private boolean exists;//存储空间、对象是否存在
private BucketList bucketList;//存储空间列表
private AccessControlList accessControlList;//存储空间、对象权限入参
private ObjectAcl objectAcl;//对象权限出参
private OSSObject ossObject;//对象下载出参
private ObjectListing objectListing;//对象列表
private String url;//对象外网访问URL
private CommonResult commonResult;
public String getOperateType() {
return operateType;
}
public void setOperateType(String operateType) {
this.operateType = operateType;
}
public boolean isExists() {
return exists;
}
public void setExists(boolean exists) {
this.exists = exists;
}
public BucketList getBucketList() {
return bucketList;
}
public void setBucketList(BucketList bucketList) {
this.bucketList = bucketList;
}
public AccessControlList getAccessControlList() {
return accessControlList;
}
public void setAccessControlList(AccessControlList accessControlList) {
this.accessControlList = accessControlList;
}
public ObjectAcl getObjectAcl() {
return objectAcl;
}
public void setObjectAcl(ObjectAcl objectAcl) {
this.objectAcl = objectAcl;
}
public OSSObject getOssObject() {
return ossObject;
}
public void setOssObject(OSSObject ossObject) {
this.ossObject = ossObject;
}
public ObjectListing getObjectListing() {
return objectListing;
}
public void setObjectListing(ObjectListing objectListing) {
this.objectListing = objectListing;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public CommonResult getCommonResult() {
return commonResult;
}
public void setCommonResult(CommonResult commonResult) {
this.commonResult = commonResult;
}
}
package com.yd.rmi.ali.ossinterf.service;
import com.aliyun.oss.model.*;
import java.io.File;
import java.util.List;
public interface AliOssInterfService {
public void initAttribute();
/**
* 初始化相关链接参数
* @param endpoint
* @param accessKeyId
* @param accessKeySecret
*/
public void initAttribute(String endpoint,String accessKeyId,String accessKeySecret);
/**
* 判断存储空间是否存在
* @param bucketName 存储空间名
* @return
*/
public boolean doesBucketExist(String bucketName);
/**
* 获取存储空间访问权限
* @param bucketName 存储空间名
* @return
*/
public AccessControlList getBucketAcl(String bucketName);
/**
* 创建存储空间
* @param bucketName 存储空间名
* @param cannedACL 访问权限
*/
public void createBucket(String bucketName, CannedAccessControlList cannedACL);
/**
* 设置存储空间访问权限
* @param bucketName 存储空间名
* @param cannedACL 访问权限
*/
public void setBucketAcl(String bucketName,CannedAccessControlList cannedACL);
/**
* 列出当前访问域名下的所有存储空间
* @return
*/
public BucketList listBuckets();
/**
* 判断对象是否存在
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public boolean doesObjectExist(String bucketName,String key);
/**
* 获取对象的访问权限
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public ObjectAcl getObjectAcl(String bucketName, String key);
/**
* 上传文件
* @param bucketName 存储空间名
* @param key 对象名
* @param file 文件
*/
public void putObject(String bucketName,String key,File file);
/**
* 设置对象访问权限
* @param bucketName 存储空间名
* @param key 对象名
* @param cannedACL 访问权限
*/
public void setObjectAcl(String bucketName,String key, CannedAccessControlList cannedACL);
/**
* 下载对象
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public OSSObject getObject(String bucketName, String key);
/**
* 列出当前访问域名下的所有对象
* @param bucketName 存储空间名
* @param prefix
* @return
*/
public ObjectListing listObjects(String bucketName, String prefix);
/**
* 获取对象外网访问URL
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public String generateUrl(String bucketName,String key);
/**
* 删除对象
* @param bucketName 存储空间名
* @param keys 对象名列表
*/
public void deleteObjects(String bucketName,List<String> keys);
}
package com.yd.rmi.ali.ossinterf.service.impl;
import com.aliyun.oss.HttpMethod;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.*;
import com.yd.rmi.ali.ossinterf.service.AliOssInterfService;
import com.yd.util.CommonUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.File;
import java.net.URL;
import java.util.Date;
import java.util.List;
@Service("aliOssInterfService")
public class AliOssInterfServiceImpl implements AliOssInterfService {
private String endpoint = null;//SystemConstants.ALI_OSS_ENDPOINT;
private String accessKeyId = null;//SystemConstants.ALI_OSS_ACCESS_KEY_ID;
private String accessKeySecret = null;//SystemConstants.ALI_OSS_ACCESS_KEY_SECRET;
// @Autowired
// private SystemConfigService systemConfigService;
//
public void initAttribute(){
// if(CommonUtil.isNullOrBlank(this.endpoint)){
// this.endpoint = systemConfigService.getSingleConfigValue("ALI_OSS_ENDPOINT");
// }
// if(CommonUtil.isNullOrBlank(this.accessKeyId)){
// this.accessKeyId = systemConfigService.getSingleConfigValue("ALI_OSS_ACCESS_KEY_ID");
// }
// if(CommonUtil.isNullOrBlank(this.accessKeySecret)){
// this.accessKeySecret = systemConfigService.getSingleConfigValue("ALI_OSS_ACCESS_KEY_SECRET");
// }
}
/**
* 初始化相关链接参数
* @param endpoint
* @param accessKeyId
* @param accessKeySecret
*/
public void initAttribute(String endpoint,String accessKeyId,String accessKeySecret){
if(!CommonUtil.isNullOrBlank(endpoint)){
this.endpoint = endpoint;
}
if(!CommonUtil.isNullOrBlank(accessKeyId)){
this.accessKeyId = accessKeyId;
}
if(!CommonUtil.isNullOrBlank(accessKeySecret)){
this.accessKeySecret = accessKeySecret;
}
}
/**
* 判断存储空间是否存在
* @param bucketName 存储空间名
* @return
*/
public boolean doesBucketExist(String bucketName){
boolean result = false;
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
result = ossClient.doesBucketExist(bucketName);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return result;
}
/**
* 获取存储空间访问权限
* @param bucketName 存储空间名
* @return
*/
public AccessControlList getBucketAcl(String bucketName){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
AccessControlList accessControlList = null;
try{
accessControlList = ossClient.getBucketAcl(bucketName);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return accessControlList;
}
/**
* 创建存储空间
* @param bucketName 存储空间名
* @param cannedACL 访问权限
*/
public void createBucket(String bucketName,CannedAccessControlList cannedACL){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
CreateBucketRequest createBucketRequest= new CreateBucketRequest(bucketName);
createBucketRequest.setCannedACL(cannedACL);
ossClient.createBucket(createBucketRequest);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
}
/**
* 设置存储空间访问权限
* @param bucketName 存储空间名
* @param cannedACL 访问权限
*/
public void setBucketAcl(String bucketName,CannedAccessControlList cannedACL){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
ossClient.setBucketAcl(bucketName, cannedACL);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
}
/**
* 列出当前访问域名下的所有存储空间
* @return
*/
public BucketList listBuckets(){
BucketList bucketList = null;
ListBucketsRequest listBucketsRequest = new ListBucketsRequest();
listBucketsRequest.setMaxKeys(500);
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
bucketList = ossClient.listBuckets(listBucketsRequest);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return bucketList;
}
/**
* 判断对象是否存在
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public boolean doesObjectExist(String bucketName,String key){
boolean result = false;
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
result = ossClient.doesObjectExist(bucketName, key);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return result;
}
/**
* 获取对象的访问权限
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public ObjectAcl getObjectAcl(String bucketName,String key){
ObjectAcl objectAcl = null;
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
objectAcl = ossClient.getObjectAcl(bucketName, key);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return objectAcl;
}
/**
* 上传文件
* @param bucketName 存储空间名
* @param key 对象名
* @param file 文件
*/
public void putObject(String bucketName,String key,File file){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
ossClient.putObject(new PutObjectRequest(bucketName, key, file));
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
}
/**
* 设置对象访问权限
* @param bucketName 存储空间名
* @param key 对象名
* @param cannedACL 访问权限
*/
public void setObjectAcl(String bucketName,String key, CannedAccessControlList cannedACL){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
ossClient.setObjectAcl(bucketName, key, cannedACL);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
}
/**
* 下载对象
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public OSSObject getObject(String bucketName,String key){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
OSSObject object = null;
try{
object = ossClient.getObject(bucketName, key);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return object;
}
/**
* 列出当前访问域名下的所有对象
* @param bucketName 存储空间名
* @param prefix
* @return
*/
public ObjectListing listObjects(String bucketName, String prefix){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
ObjectListing objectListing = null;
try{
objectListing = ossClient.listObjects(bucketName, prefix);
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return objectListing;
}
/**
* 获取对象外网访问URL
* @param bucketName 存储空间名
* @param key 对象名
* @return
*/
public String generateUrl(String bucketName,String key){
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
String url = null;
try{
ObjectAcl objectAcl = ossClient.getObjectAcl(bucketName, key);
boolean isPrivate = false;
if((objectAcl.getPermission().toString()).equals(CannedAccessControlList.Private.toString())){
isPrivate = true;
}if((objectAcl.getPermission().toString()).equals(CannedAccessControlList.Default.toString())){
AccessControlList accessControlList = ossClient.getBucketAcl(bucketName);
if( (accessControlList.getCannedACL().toString()).equals(CannedAccessControlList.Private.toString()) ){
isPrivate = true;
}
}
if(isPrivate){
Date expiration = CommonUtil.dateOperation(new Date(), "ADD", "H", 2);
GeneratePresignedUrlRequest request = new GeneratePresignedUrlRequest(bucketName, key, HttpMethod.GET);
request.setExpiration(expiration);
URL signedUrl = ossClient.generatePresignedUrl(request);
url = signedUrl.toString();
}else{
url = endpoint.replace("https://", "https://"+bucketName+".")+"/"+key;
}
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
ossClient.shutdown();
}
return url;
}
/**
* 删除对象
* @param bucketName 存储空间名
* @param keys 对象名列表
*/
public void deleteObjects(String bucketName,List<String> keys){
OSSClient client = new OSSClient(endpoint, accessKeyId, accessKeySecret);
try{
client.deleteObjects(new DeleteObjectsRequest(bucketName).withKeys(keys));
}catch (Exception e) {
e.printStackTrace();
// CommonUtil.parseExceptionStack(e);
}finally {
client.shutdown();
}
}
}
package com.yd.rmi.tencent;
public class test {
}
package com.yd.util;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;
public class HttpUtil {
/**
* 通过url取得文件返回InputStream类型数据
*
*/
public static Map<String,Object> getInput(String path) {
URL url = null;
InputStream is =null;
boolean success=true;
String message="下载文件成功";
Map<String,Object> resp=new HashMap<>();
try {
url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();//利用HttpURLConnection对象,我们可以从网络中获取网页数据.
conn.setDoInput(true);
conn.connect();
is = conn.getInputStream(); //得到网络返回的输入流
} catch (IOException e) {
success=false;
message="下载文件失败";
} finally {
resp.put("is",is);
resp.put("message",message);
resp.put("success",success);
return resp;
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment