<!--aliyun oss-->
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.8.1</version>
</dependency>
<!--二维码-->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.3.3</version>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.3.3</version>
</dependency>
oss
@Component
public class AliyunOss {
@Value("${oss.endpoint}")
private String endpoint;
@Value("${oss.bucketUrl}")
private String bucketUrl;
@Value("${oss.accessKeyId}")
private String accessKeyId;
@Value("${oss.accessKeySecret}")
private String accessKeySecret;
@Value("${oss.bucketName}")
private String bucketName;
public String ossUpload(MultipartFile file, String fileKey) throws IOException {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
PutObjectResult res = ossClient.putObject(bucketName, fileKey, new ByteArrayInputStream(file. getBytes()));
ossClient.shutdown();
if (res != null) {
return fileKey;
}
return null;
}
public String ossUploadByteStream(String fileKey, byte[] bytes)
{
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, fileKey, new ByteArrayInputStream(bytes));
PutObjectResult res = ossClient.putObject(putObjectRequest);
ossClient.shutdown();
if (res != null) {
return fileKey;
}
return null;
}
public Map<String, String> getPolicy(String dir) throws UnsupportedEncodingException {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
PolicyConditions policyConds = new PolicyConditions();
policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);
policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);
long expireTime = 30;
long expireEndTime = System.currentTimeMillis() + expireTime * 1000;
Date expiration = new Date(expireEndTime);
String postPolicy = ossClient.generatePostPolicy(expiration, policyConds);
byte[] binaryData = postPolicy.getBytes("utf-8");
String encodedPolicy = BinaryUtil.toBase64String(binaryData);
String postSignature = ossClient.calculatePostSignature(postPolicy);
Map<String, String> respMap = new LinkedHashMap<String, String>();
respMap.put("accessid", accessKeyId);
respMap.put("policy", encodedPolicy);
respMap.put("signature", postSignature);
respMap.put("dir", dir);
respMap.put("fileName", UUID.randomUUID().toString());
respMap.put("host", bucketUrl);
respMap.put("expire", String.valueOf(expireEndTime / 1000));
respMap.put("callback", "");
ossClient.shutdown();
return respMap;
}
public String getBucketUrl() {
return bucketUrl;
}
}
二维码
public class Qrcode {
public String getQrcode(String text, int width, int height, String filekey, AliyunOss oss) {
try {
ByteArrayOutputStream os = new ByteArrayOutputStream();
QRCodeWriter qrCodeWriter = new QRCodeWriter();
BitMatrix bitMatrix = qrCodeWriter.encode(text, BarcodeFormat.QR_CODE, width, height);
MatrixToImageWriter.writeToStream(bitMatrix, "png", os);
byte[] bytes = os.toByteArray();
String url = oss.ossUploadByteStream(filekey, bytes);
if (url == null) {
return null;
}
return url;
} catch (WriterException | IOException e) {
e.printStackTrace();
return null;
}
}
}