oss的文件如何设置Content-Type
mini云码 发布日期: 2025-11-10 10:17
在oss上上传文件,时候用oss的网络路径下载的时候,默认http协议返回的Content-Type是application/octet-stream。
这样,会造成我们使用浏览器访问css或者js文件的时候,并不是查看代码的方式,而是下载下来。
而访问图片的时候,不是显示图片的内容,也是下载下来。这并不是我们想要的。我们需要的是,访问js的文件的时候,返回Content-Type应该是application/java,而不是application/octet-stream。
这样,就可以在我们上传的时候,设置上传的mime参数,代码如下是所示:
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import com.aliyun.oss.model.PutObjectRequest;
import com.aliyun.oss.model.PutObjectResult;
public class OssUploadExample {
public static void main(String[] args) {
// 替换为你的Endpoint, AccessKeyId, AccessKeySecret, 和BucketName
String endpoint = "oss-cn-hangzhou.aliyuncs.com";
String accessKeyId = "xxxxxxxxxx";
String accessKeySecret = "xxxxxxxxxxxx";
String bucketName = "bucketNameXXX";
String key = "objectName";
String fileUploadPath = "path/to/your/file.png";
// 获取文件的MIME类型
String mimeType = getMimeType(fileUploadPath);
System.out.println("File MIME type: " + mimeType);
// 创建OSSClient实例。
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
try {
// 上传文件。
PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, key, fileUploadPath);
putObjectRequest.setContentType(mimeType); // 设置MIME类型
PutObjectResult putObjectResult = ossClient.putObject(putObjectRequest);
System.out.println("Upload Success");
} catch (Exception e) {
e.printStackTrace();
} finally {
// 关闭OSSClient。
if (ossClient != null) {
ossClient.shutdown();
}
}
}
}
