example.txt(文件)、dir/example.txt(模擬目錄)。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 效果圖:
避免「下載到本地 → 再上傳」的雙倍 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 效果圖:
公有雲通常用 oss-cn-hangzhou.aliyuncs.com;私有雲/專有雲可能需 bucket-name.endpoint 格式。若上傳失敗,嘗試在 Endpoint 前加 BucketName。