精选
推荐文章

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();
            }
        }
    }
}