>  기사  >  Java  >  객체 저장 및 관리를 위해 Java 및 Qiniu Cloud KODO를 사용하는 방법

객체 저장 및 관리를 위해 Java 및 Qiniu Cloud KODO를 사용하는 방법

WBOY
WBOY원래의
2023-07-06 20:01:571257검색

객체 스토리지 및 관리를 위해 Java 및 Qiniu Cloud KODO를 사용하는 방법

1. 소개
클라우드 컴퓨팅과 빅데이터의 급속한 발전으로 클라우드 스토리지는 점점 더 중요한 부분이 되었습니다. 중국에서 잘 알려진 객체 스토리지 플랫폼인 Qiniu Cloud KODO는 강력한 스토리지 및 관리 기능을 제공하며 웹사이트, 모바일 애플리케이션, 라이브 비디오 및 기타 분야에서 널리 사용됩니다. 이 기사에서는 객체 저장 및 관리를 위해 Java 및 Qiniu Cloud KODO를 사용하는 방법을 소개하고 해당 코드 예제를 제공합니다.

2. Qiniu Cloud 계정 및 저장 공간 만들기

  1. Qiniu Cloud 공식 웹사이트(https://www.qiniu.com/)를 방문하여 "등록" 버튼을 클릭하여 계정을 만드세요.
  2. Qiniu Cloud Console에 로그인하여 저장 공간을 생성하세요. 콘솔의 "저장 공간" 페이지에서 "새 공간"을 클릭하고 해당 정보를 입력한 후 저장합니다. 여기서는 저장공간 이름을 "mybucket"으로 예시한다.

3. 종속 라이브러리 추가
아래와 같이 Java 프로젝트의 pom.Key에 다음 종속 라이브러리를 추가합니다.

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.4.0</version>
</dependency>

5. Qiniu Cloud KODO

에 파일을 업로드하고 QiniuUtils라는 도구 클래스를 추가합니다. 코드:

    qiniu.accessKeyId=your_access_key_id
    qiniu.secretKey=your_secret_key
    qiniu.bucket=mybucket
    qiniu.domain=http://your_domain_url
  1. 아래와 같이 파일() 메서드를 업로드해야 하는 곳에서 QiniuUtils.uploadFile을 호출합니다.
    import com.qiniu.util.Auth;
    import com.qiniu.util.StringMap;
    import com.qiniu.util.UrlSafeBase64;
    import okhttp3.MediaType;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    import org.json.JSONObject;
    
    import java.io.IOException;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    import java.util.UUID;
    
    public class QiniuUtils {
        private static final String ACCESS_KEY = ConfigUtil.getProperty("qiniu.accessKeyId");
        private static final String SECRET_KEY = ConfigUtil.getProperty("qiniu.secretKey");
        private static final String BUCKET_NAME = ConfigUtil.getProperty("qiniu.bucket");
        private static final String DOMAIN = ConfigUtil.getProperty("qiniu.domain");
    
        // 上传文件到七牛云KODO
        public static String uploadFile(String filePath) throws IOException {
            String key = UUID.randomUUID().toString(); // 自动生成唯一的key
            String uploadToken = getUploadToken(); // 获取上传凭证
    
            OkHttpClient client = new OkHttpClient();
            // 读取文件内容
            byte[] data = Files.readAllBytes(Paths.get(filePath));
            RequestBody requestBody = RequestBody.create(MediaType.parse("application/octet-stream"), data);
    
            // 构建请求
            Request request = new Request.Builder()
                    .url("http://upload.qiniu.com/putb64/" + -1 + "/key/" + UrlSafeBase64.encodeToString(key))
                    .header("Content-Type", "application/octet-stream")
                    .header("Authorization", "UpToken " + uploadToken)
                    .post(requestBody)
                    .build();
    
            // 发送请求
            Response response = client.newCall(request).execute();
            if (response.isSuccessful()) {
                JSONObject jsonObject = new JSONObject(response.body().string());
                String url = DOMAIN + "/" + jsonObject.getString("key");
                return url;
            } else {
                throw new IOException("Unexpected code " + response);
            }
        }
    
        // 获取上传凭证
        private static String getUploadToken() {
            Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
            return auth.uploadToken(BUCKET_NAME);
        }
    }
  1. 6. 파일을 다운로드합니다.

QiniuUtils 클래스에 다음 코드를 추가합니다.

    public class MainApp {
        public static void main(String[] args) throws IOException {
            String filePath = "path/to/file.jpg";
            String url = QiniuUtils.uploadFile(filePath);
            System.out.println("上传成功,文件URL为:" + url);
        }
    }
  1. 다음과 같이 파일을 다운로드해야 하는 QiniuUtils.downloadFile() 메서드를 호출합니다.
    // 下载文件
    public static void downloadFile(String key, String savePath) throws IOException {
        String downloadUrl = DOMAIN + "/" + key;
        OkHttpClient client = new OkHttpClient();
        Request request = new Request.Builder()
                .url(downloadUrl)
                .build();
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            byte[] data = response.body().bytes();
            Files.write(Paths.get(savePath), data);
            System.out.println("下载成功,文件保存路径为:" + savePath);
        } else {
            throw new IOException("Unexpected code " + response);
        }
    }
  1. 7. 파일 삭제
  2. QiniuUtils 클래스에 다음 코드를 추가합니다.
public class MainApp {
    public static void main(String[] args) throws IOException {
        String key = "file.jpg";
        String savePath = "path/to/save/file.jpg";
        QiniuUtils.downloadFile(key, savePath);
    }
}

QiniuUtils.deleteFile() 메서드를 호출합니다. 파일을 삭제해야 하는 위치는 아래와 같습니다.

// 删除文件
public static void deleteFile(String key) throws IOException {
    Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    Configuration cfg = new Configuration(Zone.zone0());
    BucketManager bucketManager = new BucketManager(auth, cfg);
    bucketManager.delete(BUCKET_NAME, key);
    System.out.println("删除成功");
}

위는 Qiniu에서 Java를 사용하는 방법에 대한 설명입니다. Cloud KODO를 사용한 객체 저장 및 관리에 대한 소개 및 샘플 코드입니다. 이러한 코드를 통해 우리는 쉽게 파일을 업로드, 다운로드, 삭제할 수 있으며 클라우드 스토리지에서 기본 작업을 구현할 수 있습니다. 이 기사가 도움이 되기를 바랍니다!

위 내용은 객체 저장 및 관리를 위해 Java 및 Qiniu Cloud KODO를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.