com.qiniu.storage.persistent.FileRecorder Java Examples
The following examples show how to use
com.qiniu.storage.persistent.FileRecorder.
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: QiniuOssFileHandler.java From halo with GNU General Public License v3.0 | 4 votes |
@Override public UploadResult upload(MultipartFile file) { Assert.notNull(file, "Multipart file must not be null"); Region region = optionService.getQiniuRegion(); String accessKey = optionService.getByPropertyOfNonNull(QiniuOssProperties.OSS_ACCESS_KEY).toString(); String secretKey = optionService.getByPropertyOfNonNull(QiniuOssProperties.OSS_SECRET_KEY).toString(); String bucket = optionService.getByPropertyOfNonNull(QiniuOssProperties.OSS_BUCKET).toString(); String protocol = optionService.getByPropertyOfNonNull(QiniuOssProperties.OSS_PROTOCOL).toString(); String domain = optionService.getByPropertyOfNonNull(QiniuOssProperties.OSS_DOMAIN).toString(); String source = optionService.getByPropertyOrDefault(QiniuOssProperties.OSS_SOURCE, String.class, ""); String styleRule = optionService.getByPropertyOrDefault(QiniuOssProperties.OSS_STYLE_RULE, String.class, ""); String thumbnailStyleRule = optionService.getByPropertyOrDefault(QiniuOssProperties.OSS_THUMBNAIL_STYLE_RULE, String.class, ""); // Create configuration Configuration configuration = new Configuration(region); // Create auth Auth auth = Auth.create(accessKey, secretKey); // Build put plicy StringMap putPolicy = new StringMap(); putPolicy.put("returnBody", "{\"key\":\"$(key)\",\"hash\":\"$(etag)\",\"size\":$(fsize),\"width\":$(imageInfo.width),\"height\":$(imageInfo.height)}"); // Get upload token String uploadToken = auth.uploadToken(bucket, null, 60 * 60, putPolicy); // Create temp path Path tmpPath = Paths.get(System.getProperty("java.io.tmpdir"), bucket); StringBuilder basePath = new StringBuilder(protocol) .append(domain) .append(URL_SEPARATOR); try { String basename = FilenameUtils.getBasename(Objects.requireNonNull(file.getOriginalFilename())); String extension = FilenameUtils.getExtension(file.getOriginalFilename()); String timestamp = String.valueOf(System.currentTimeMillis()); StringBuilder upFilePath = new StringBuilder(); if (StringUtils.isNotEmpty(source)) { upFilePath.append(source) .append(URL_SEPARATOR); } upFilePath.append(basename) .append("_") .append(timestamp) .append(".") .append(extension); // Get file recorder for temp directory FileRecorder fileRecorder = new FileRecorder(tmpPath.toFile()); // Get upload manager UploadManager uploadManager = new UploadManager(configuration, fileRecorder); // Put the file Response response = uploadManager.put(file.getInputStream(), upFilePath.toString(), uploadToken, null, null); if (log.isDebugEnabled()) { log.debug("Qiniu oss response: [{}]", response.toString()); log.debug("Qiniu oss response body: [{}]", response.bodyString()); } // Convert response PutSet putSet = JsonUtils.jsonToObject(response.bodyString(), PutSet.class); // Get file full path String filePath = StringUtils.join(basePath.toString(), upFilePath.toString()); // Build upload result UploadResult result = new UploadResult(); result.setFilename(basename); result.setFilePath(StringUtils.isBlank(styleRule) ? filePath : filePath + styleRule); result.setKey(upFilePath.toString()); result.setSuffix(extension); result.setWidth(putSet.getWidth()); result.setHeight(putSet.getHeight()); result.setMediaType(MediaType.valueOf(Objects.requireNonNull(file.getContentType()))); result.setSize(file.getSize()); if (isImageType(result.getMediaType())) { if (ImageUtils.EXTENSION_ICO.equals(extension)) { result.setThumbPath(filePath); } else { result.setThumbPath(StringUtils.isBlank(thumbnailStyleRule) ? filePath : filePath + thumbnailStyleRule); } } return result; } catch (IOException e) { if (e instanceof QiniuException) { log.error("Qiniu oss error response: [{}]", ((QiniuException) e).response); } throw new FileOperationException("上传附件 " + file.getOriginalFilename() + " 到七牛云失败", e); } }