百科问答小站 logo
百科问答小站 font logo



怎么用javaweb上传文件到阿里云OSS


user avatar   网友的相关建议: 
      

前段时间正好做个项目,就是用的oss,普通上传和断点续传,代码贴出来,看是不是你需要的

public class OssManage { public static  String ACCESS_KEY_ID  = null; public static  String  ACCESS_KEY_SECRET = null; public static  String  ENDPOINT = null; public static  String  BUCKETNAME = null; public static  String  BUCKETNAME_VIDEO = null; public static String OUT_OF_DATE = null; private  OSSClient client  = null; private  ObjectMetadata meta = null; static{  try {   ACCESS_KEY_ID  = SysConst.getProperty("OSS_ACCESS_KEY_ID");   ACCESS_KEY_SECRET = SysConst.getProperty("OSS_ACCESS_KEY_SECRET");   ENDPOINT = SysConst.getProperty("OSS_ENDPOINT");    BUCKETNAME = SysConst.getProperty("OSS_BUCKETNAME");    BUCKETNAME_VIDEO = SysConst.getProperty("OSS_BUCKETNAME_VIDEO");    OUT_OF_DATE = SysConst.getProperty("OSS_OUT_OF_DATE");  } catch (java.lang.Exception e) {   e.printStackTrace();  } }  public void init(){   // 初始化一个OSSClient         client = new OSSClient(ENDPOINT,ACCESS_KEY_ID, ACCESS_KEY_SECRET);         meta = new ObjectMetadata(); }  /**  * @Description: 上传文件到OSS文件服务器  * @param content  文件流  * @param key    上传为OSS文件服务器的唯一标识  * @param mimeType  文档类型  * @throws Exception   * @ReturnType:String   OSSObject的ETag值。 */ public String  uploadFile(InputStream content,String key,String mimeType) throws Exception{  //进行初始化  init();         // 必须设置ContentLength         meta.setContentType(mimeType);         // 上传Object.         LogUtil.printConsoleLog("*****************上传图片到oss服务器开始*****************" + key);         PutObjectResult result = client.putObject(BUCKETNAME, key, content, meta);         LogUtil.printConsoleLog("*****************上传图片到oss服务器结束*****************" + key);         return result.getETag(); }  /**  * @Description: 根据key获取oss服务器上的图片地址  * @param key  * @return   * @ReturnType:String */ public String getImgURl(String key){  init();  Date expires = new Date (new Date().getTime() + Integer.parseInt(OUT_OF_DATE)); // 30 minute to expire  GeneratePresignedUrlRequest generatePresignedUrlRequest ;  if(key.startsWith("msplatform")){   generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME, key);  }else {   generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME_VIDEO, key);  }  generatePresignedUrlRequest.setExpiration(expires);  URL url = client.generatePresignedUrl(generatePresignedUrlRequest);  return url.toString(); } /**  * @Description:根据key获取oss服务器上的ipa文件地址  * @param key  * @return   * @ReturnType:String  */ public String getIpaURl(String key){  init();  Date expires = new Date(new Date().getTime()+ 10*365*24*3600*1000);  GeneratePresignedUrlRequest generatePresignedUrlRequest ;  if(key.startsWith("msplatform")){   generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME, key);  }else {   generatePresignedUrlRequest =new GeneratePresignedUrlRequest(BUCKETNAME_VIDEO, key);  }  generatePresignedUrlRequest.setExpiration(expires);  URL url = client.generatePresignedUrl(generatePresignedUrlRequest);  return url.toString(); }  /**  * @Description: 根据key获取oss服务器上的图片地址  * @param key  * @return   * @ReturnType:String */ public InputStream  getObject(String key){  init();  OSSObject object = null;  if(key.startsWith("msplatform")){   object= client.getObject(BUCKETNAME, key);  }else{   object= client.getObject(BUCKETNAME_VIDEO, key);  }  object.getObjectMetadata().getContentType();  // 获取Object的输入流  InputStream objectContent = object.getObjectContent();     return objectContent; }   /**  * @Description:删除文件  * @param key  OSS文件服务器上文件的唯一标识  * @ReturnType:void */ public void deleteFile(String key){  init();  client.deleteObject(BUCKETNAME, key); }   /**  * @Description: 断点上传文件到OSS文件服务器  * @param content  文件流  * @param key    上传为OSS文件服务器的唯一标识  * @param position 位置 */ public String  appendObjectFile(InputStream content,String key,int position,String mimeType) throws Exception{     //进行初始化      init();         // 必须设置ContentLength         meta.setContentLength(position);         meta.setContentType(mimeType);         meta.setCacheControl("no-cache");         meta.setContentEncoding("utf-8");         // 上传         LogUtil.printConsoleLog("*****************断点上传图片到oss服务器开始*****************" + key);         AppendObjectRequest appendObjectRequest = new AppendObjectRequest(BUCKETNAME, key, content, meta);         appendObjectRequest.setPosition(Long.valueOf(position));         AppendObjectResult appendObjectResult =client.appendObject(appendObjectRequest);         LogUtil.printConsoleLog("*****************断点上传图片到oss服务器结束*****************" + key);         return appendObjectResult.getNextPosition().toString(); }  public static void main(String[] args) {  OssManage ossManage = new OssManage(); }}




相关阿里云话题

阿里云OSS无法上传大文件怎么办?
阿里云服务器上彻底删除一个文件怎么恢复
阿里云美国硅谷服务器怎么上传文件
阿里云服务器环境里的linux系统怎么修改文件权限
我刚在阿里云注册了个网站,它的根目录一般在那个文件,我怎么找不到了?
阿里云oss好贵啊,有没有什么更好的替换方案
阿里云oss好贵啊,有没有什么更好的替换方案
阿里云oss被调度至沙箱后有什么影响
阿里云的oss/会提醒异地使用的吗?
阿里云OSS怎么接到dede去
阿里云的oss服务创建会造成什么影响?
上传图片到阿里云的OSS上,可以吗
阿里云OSS中可以重命名bucket吗?是否支持object迁移
阿里云oss python sdk怎么上传一个目录
阿里云oss上传文件怎么返回上传文件的url
goodsync是否可以链接链接阿里云OSS
阿里云oss 怎么设置只允许内网
阿里云oss 放css 能合并请求吗
阿里云oss python sdk怎么上传一个目录
阿里云oss怎么设置文件为域名主页



前一个讨论
请问阿里云的php.ini文件位置在哪里
下一个讨论
阿里云OSS无法上传大文件怎么办?





© 2024-11-25 - tinynew.org. All Rights Reserved.
© 2024-11-25 - tinynew.org. 保留所有权利