开发者社区> 问答> 正文

文件上传时报错

1、我运行如下代码时报的错是:Exception in thread "main" [ErrorCode]:AccessDenied, [Message]:The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.


代码:

String accessKeyId = "申请的id";
        String accessKeySecret = "申请的key";  
        OSSClient client = new OSSClient(accessKeyId, accessKeySecret);
        String bucketName="yskjtest";//此bucket已经存在
        // 获取指定文件的输入流
        String filePath="f:\\osstest\\btre.jpg";
        File file = new File(filePath);
        try {
            InputStream content = new FileInputStream(file);
            // 创建上传 Object 的 Metadata
             ObjectMetadata meta = new ObjectMetadata();
            
             // 必须设置 ContentLength
             meta.setContentLength(file.length());
            
             // 上传 Object.
             PutObjectResult result = client.putObject(bucketName, "newphoto.jpg", content, meta);
            
             // 打印 ETag
             System.out.println(result.getETag());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


2、我运行如下代码报错信息:Exception in thread "main" [ErrorCode]:InvalidBucketName, [Message]:The specified bucket is not valid.


代码:

String accessKeyId = "申请的id";
        String accessKeySecret = "申请的key";  
        OSSClient client = new OSSClient(accessKeyId, accessKeySecret);
        String bucketName="yskjtest";//此bucket已经存在
        String endpoint = "http://yskjtest.oss-cn-beijing.aliyuncs.com";
        OSSClient client = new OSSClient(endpoint,accessKeyId, accessKeySecret);  
        
        // 获取指定文件的输入流
        String filePath="f:\\osstest\\btre.jpg";
        File file = new File(filePath);
        try {
            InputStream content = new FileInputStream(file);
            // 创建上传 Object 的 Metadata
             ObjectMetadata meta = new ObjectMetadata();
            
             // 必须设置 ContentLength
             meta.setContentLength(file.length());
            
             // 上传 Object.
             PutObjectResult result = client.putObject(bucketName, "newphoto.jpg", content, meta);
            
             // 打印 ETag
             System.out.println(result.getETag());
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }




到底该怎么写啊,求大神指教

展开
收起
飞墨言逝 2014-12-04 10:24:16 9402 0
3 条回答
写回答
取消 提交回答
  • Re文件上传时报错
    这个endpoint的值是从哪里查到的?我在OSS管理控制台没看到
    2014-12-06 18:14:33
    赞同 展开评论 打赏
  • 回2楼superzouzhy的帖子
    yskjtest是创建的bucket名,endpoint应该用http://oss-cn-beijing.aliyuncs.com ,不应该加上bucket名称,已经解决了

    -------------------------

    回4楼医手的帖子
    你在bucket中上传一个文件,看这个文件的链接地址,从http到.com就是endpoint
    2014-12-04 14:20:18
    赞同 展开评论 打赏
  • Re文件上传时报错
    你使用的域名是什么? bucket名称?

    -------------------------

    Re文件上传时报错
    $curl -v http://yskjtest.oss-cn-beijing.aliyuncs.com 没有出错啊, 是不是域名那里写错了
    2014-12-04 11:26:04
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
附件下载测试 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载