首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

阿里云 OSS Java SDK 實戰:文件上傳與 URL 流式直傳完整指南

     編輯:Java 綜合教學

OSS 核心概念速覽

  • Object:基本存儲單元,含 Key(名稱)、Meta(元數據)、Data(內容)。單文件最大 5TB。Key 命名規範:UTF-8、1-1023 字節、不可以 / 或 \ 開頭。
    例:example.txt(文件)、dir/example.txt(模擬目錄)。
  • Bucket:Object 容器,需先在控制台創建。獲取 AccessKey ID/Secret 用於簽名驗證。

場景一:本地文件上傳

import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;
import java.io.File;

public class TestJava {
    static String accessKeyId = "Your AccessKeyId";
    static String accessKeySecret = "Your AccessKeySecret";
    static String endPoint = "OSS Endpoint";  // 注意:某些私有雲需加 Bucket 前綴
    static String bucketName = "bucket-example";

    public static void main(String[] args) throws Exception {
        File file = new File("C:\\Users\\Desktop\\example.tar");
        OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
        String objKey = "example.tar";  // 根目錄
        ObjectMetadata meta = new ObjectMetadata();
        PutObjectResult result = ossClient.putObject(bucketName, objKey, file, meta);
        System.out.println("ETag: " + result.getETag());
    }
}

Bucket 效果圖:

場景二:URL 內容流式直傳(無臨時文件)

避免「下載到本地 → 再上傳」的雙倍 IO 開銷,直接將 HTTP 輸入流管道接入 OSS。

URL url = new URL("Your Download Url");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
InputStream is = conn.getInputStream();  // 或 url.openStream()

OSSClient ossClient = new OSSClient(endPoint, accessKeyId, accessKeySecret);
String objKey = "cd/example.tar";  // 模擬目錄 cd/
PutObjectResult result = ossClient.putObject(bucketName, objKey, is, new ObjectMetadata());
System.out.println("ETag: " + result.getETag());

Bucket 效果圖:

踩坑提示:Endpoint 配置

公有雲通常用 oss-cn-hangzhou.aliyuncs.com;私有雲/專有雲可能需 bucket-name.endpoint 格式。若上傳失敗,嘗試在 Endpoint 前加 BucketName。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved