# aliyun-sdk-oss-proxy
**Repository Path**: ylcplus/aliyun-sdk-oss-proxy
## Basic Information
- **Project Name**: aliyun-sdk-oss-proxy
- **Description**: 实现对oss操作代理
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-05-20
- **Last Updated**: 2026-05-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Aliyun OSS SDK for Java (已修改 - 支持代理中转)
基于阿里云 OSS SDK V1(aliyun-sdk-oss 3.18.5)修改,新增 **请求代理中转** 功能,支持将所有 OSS 请求通过中转服务转发。
## 修改说明
**场景**:应用部署在内网,无法直接访问 OSS 公网 endpoint。需要将所有 OSS 请求先发送到内部 proxy-api 中转服务,由 proxy-api 转发到 OSS。
**改动**:
- 新增 `ossProxyEndpoint` 配置项(`ClientConfiguration`)
- OSS 请求自动重定向到 proxy endpoint,原始 OSS URL 通过 `X-Proxy-Target` 请求头发送
- 支持代码配置、系统属性、环境变量三种方式
## 请求转发原理
```
你的应用
→ OSS SDK(已修改)
→ HTTP 请求到 proxy-api:9092/proxy(请求头含 X-Proxy-Target: 真实OSS地址)
→ proxy-api 转发到 OSS 真实服务
→ 响应原路返回
```
## 使用方式
### Maven 依赖
```xml
com.eleadmin
aliyun-sdk-oss-proxy
1.0.0
```
### 配置代理中转
**方式一:Builder 链式调用(推荐)**
```java
OSS ossClient = OSSClientBuilder.create()
.endpoint("https://oss-cn-hangzhou.aliyuncs.com")
.credentialsProvider(provider)
.ossProxyEndpoint("http://proxy-api:9092/proxy")
.build();
```
**方式二:ClientConfiguration 设置**
```java
ClientConfiguration config = new ClientConfiguration();
config.setOssProxyEndpoint("http://proxy-api:9092/proxy");
OSS ossClient = new OSSClientBuilder()
.build("https://oss-cn-hangzhou.aliyuncs.com", accessKeyId, secretAccessKey, config);
```
**方式三:系统属性**
```bash
java -Doss.proxy.endpoint=http://proxy-api:9092/proxy -jar your-app.jar
```
**方式四:环境变量**
```bash
export OSS_PROXY_ENDPOINT=http://proxy-api:9092/proxy
```
### 不配置代理(走直连)
不设置 `ossProxyEndpoint` 即可,行为与官方 SDK 完全一致。
## 构建与打包
```bash
# 编译 + 打包(默认打 fat jar,包含所有依赖)
mvn clean package -DskipTests -Dgpg.skip=true -Dmaven.javadoc.skip=true
# 输出:
# target/aliyun-sdk-oss-proxy-1.0.0.jar (fat jar,~14MB,可直接使用)
# target/aliyun-sdk-oss-proxy-1.0.0-sources.jar (源码包)
```
如果只想打瘦包(不包含依赖),移除 `pom.xml` 中的 `maven-assembly-plugin` 即可。
## 在其他项目中使用
### 方式一:安装到本地 Maven 仓库(推荐)
```bash
mvn install:install-file \
-Dfile=aliyun-sdk-oss-proxy-1.0.0.jar \
-DgroupId=com.eleadmin \
-DartifactId=aliyun-sdk-oss-proxy \
-Dversion=1.0.0 \
-Dpackaging=jar
```
然后在目标项目的 `pom.xml` 中添加依赖:
```xml
com.eleadmin
aliyun-sdk-oss-proxy
1.0.0
```
### 方式二:直接引入 jar 文件
将 `aliyun-sdk-oss-proxy-1.0.0.jar` 放到项目 `lib/` 目录,在 `pom.xml` 中引入:
```xml
com.eleadmin
aliyun-sdk-oss-proxy
1.0.0
system
${project.basedir}/lib/aliyun-sdk-oss-proxy-1.0.0.jar
```
> 注意:fat jar 已包含所有依赖,无需额外添加。瘦包则需要自行添加 httpclient、jdom、jettison 等依赖(详见 `pom.xml`)。
## 环境要求
- Java 1.8+
- Maven