Java tutorial
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.migo.oss; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.migo.utils.RRException; import com.qcloud.cos.COSClient; import com.qcloud.cos.ClientConfig; import com.qcloud.cos.request.UploadFileRequest; import com.qcloud.cos.sign.Credentials; import org.apache.commons.io.IOUtils; import java.io.IOException; import java.io.InputStream; /** * * * @author * @email fei6751803@163.com */ public class QcloudCloudStorageService extends CloudStorageService { private COSClient client; public QcloudCloudStorageService(CloudStorageConfig config) { this.config = config; //? init(); } private void init() { Credentials credentials = new Credentials(config.getQcloudAppId(), config.getQcloudSecretId(), config.getQcloudSecretKey()); //?? ClientConfig clientConfig = new ClientConfig(); //bucket??gz ?tj ?sh clientConfig.setRegion(config.getQcloudRegion()); client = new COSClient(clientConfig, credentials); } @Override public String upload(byte[] data, String path) { //?"/" if (!path.startsWith("/")) { path = "/" + path; } // UploadFileRequest request = new UploadFileRequest(config.getQcloudBucketName(), path, data); String response = client.uploadFile(request); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getIntValue("code") != 0) { throw new RRException("" + jsonObject.getString("message")); } return config.getQcloudDomain() + path; } @Override public String upload(InputStream inputStream, String path) { try { byte[] data = IOUtils.toByteArray(inputStream); return this.upload(data, path); } catch (IOException e) { throw new RRException("", e); } } @Override public String upload(byte[] data) { return upload(data, getPath(config.getQcloudPrefix())); } @Override public String upload(InputStream inputStream) { return upload(inputStream, getPath(config.getQcloudPrefix())); } }