QiniuCloudStorageService.java 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. /**
  2. * Copyright (c) 2016-2019 人人开源 All rights reserved.
  3. * <p>
  4. * https://www.renren.io
  5. * <p>
  6. * 版权所有,侵权必究!
  7. */
  8. package io.renren.modules.oss.cloud;
  9. import com.qiniu.common.Zone;
  10. import com.qiniu.http.Response;
  11. import com.qiniu.storage.Configuration;
  12. import com.qiniu.storage.UploadManager;
  13. import com.qiniu.util.Auth;
  14. import io.renren.common.exception.RRException;
  15. import org.apache.commons.io.IOUtils;
  16. import java.io.IOException;
  17. import java.io.InputStream;
  18. /**
  19. * 七牛云存储
  20. *
  21. * @author Mark 735032128@qq.com
  22. */
  23. public class QiniuCloudStorageService extends CloudStorageService {
  24. private UploadManager uploadManager;
  25. private String token;
  26. public QiniuCloudStorageService(CloudStorageConfig config) {
  27. this.config = config;
  28. //初始化
  29. init();
  30. }
  31. private void init() {
  32. uploadManager = new UploadManager(new Configuration(Zone.autoZone()));
  33. token = Auth.create(config.getQiniuAccessKey(), config.getQiniuSecretKey()).
  34. uploadToken(config.getQiniuBucketName());
  35. }
  36. @Override
  37. public String upload(byte[] data, String path) {
  38. try {
  39. Response res = uploadManager.put(data, path, token);
  40. if (!res.isOK()) {
  41. throw new RuntimeException("上传七牛出错:" + res.toString());
  42. }
  43. } catch (Exception e) {
  44. throw new RRException("上传文件失败,请核对七牛配置信息", e);
  45. }
  46. return config.getQiniuDomain() + "/" + path;
  47. }
  48. @Override
  49. public String upload(InputStream inputStream, String path) {
  50. try {
  51. byte[] data = IOUtils.toByteArray(inputStream);
  52. return this.upload(data, path);
  53. } catch (IOException e) {
  54. throw new RRException("上传文件失败", e);
  55. }
  56. }
  57. @Override
  58. public String uploadSuffix(byte[] data, String suffix) {
  59. return upload(data, getPath(config.getQiniuPrefix(), suffix));
  60. }
  61. @Override
  62. public String uploadSuffix(InputStream inputStream, String suffix) {
  63. return upload(inputStream, getPath(config.getQiniuPrefix(), suffix));
  64. }
  65. }