oss文件上传时报错:Exception in thread "main" com.aliyun.oss.OSSException: You have no right to

首先检查配置,无问题则是权限问题。

权限问题解决方法:

 

 oss配置与测试:https://blog.csdn.net/jq1223/article/details/114368524

完整测试代码

import com.aliyun.oss.OSSClient;
import com.aliyun.oss.model.ObjectMetadata;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;

public class TestOss {

// 阿里云oss上传文件相关属性值

// 阿里云API的外网域名
public static final String ENDPOINT = "oss-cn-hangzhou.aliyuncs.com";
// 阿里云API的密钥
public static final String ACCESS_KEY_ID = "";
// 阿里云API的密钥Access Key Secret
public static final String ACCESS_KEY_SECRET = "";
// 阿里云API的bucket名称
public static final String BACKET_NAME = "video-lzz";
// 阿里云API自定义的文件夹名称
public static final String FOLDER = "avatar/";


public static void main(String[] args) {

// 创建ossclient对象,通过keyid key secret创建
OSSClient ossClient = new OSSClient(ENDPOINT, ACCESS_KEY_ID,ACCESS_KEY_SECRET);

// 上传文件的路径
// String path = "D:/图片/12.jpg";
String path = "C:\\Users\\lzz\\Desktop\\01\\测试用例\\logo.png";

// 根据路径创建file
File file = new File(path);

try {

// 以输入流的形式上传文件
InputStream is = new FileInputStream(file);

// 获取文件名
String fileName = file.getName();
System.out.println("file:"+fileName);

// 获取文件大小
long fileSize = file.length();

// 创建一个metadata对象
ObjectMetadata metadata = new ObjectMetadata();

// 给metadata赋值

// 文件大小
metadata.setContentLength(fileSize);

// 定义文件的类型以及网页编码:决定浏览器是以什么形式什么编码读取文件
String suffix = fileName.substring(fileName.lastIndexOf("."));

String str = "";

if(".jpg".equalsIgnoreCase(suffix)){

str = "image/jpeg";

}else if(".bmp".equalsIgnoreCase(suffix)){

str = "image/bmp";

}else if(".png".equalsIgnoreCase(suffix)){
str = "image/png";
}

metadata.setContentType(str);

// 指定文件的名称
metadata.setContentDisposition(fileName);

// 上传文件
ossClient.putObject(BACKET_NAME,FOLDER+fileName, file);

} catch (FileNotFoundException e) {

e.printStackTrace();

}

}

}
posted on 2022-06-13 14:18  恶霸李士士  阅读(88)  评论(0编辑  收藏  举报