zoukankan      html  css  js  c++  java
  • Java进阶学习:将文件上传到七牛云中

    Java进阶学习:将文件上传到七牛云中

    通过本文,我们将讲述如何利用七牛云官方SDK,将我们的本地文件传输到其存储空间中去。 

    JavaSDK:https://developer.qiniu.com/kodo/sdk/1239/java#server-upload

    官方SDK:https://developer.qiniu.com/sdk#official-sdk

    创建空间及绑定域名

    创建存储空间

      这一步操作没有什么好说的,我们存储区域可以根据服务器的高频访问地域进行设置

      

    绑定域名

      创建好存储空间后就会默认给你一个测试域名来使得你能通过外链访问你空间的内容。但是七牛云存储器作为我们应用的一部分,它的访问域名也应该遵循我们的域名规范,此时我们可以通过绑定域名来实现这样的效果,比如可以通过cloud.mrsaber.cn来访问七牛云存储中的文件。

      点击图示位置中的自定义域名:

      

      填写域名的相关信息及设置(域名必填,其他默认即可):

      

      填写完以后将七牛云将会给你一个CNAME:

      

      最后一步是,在你的域名厂商中添加一条二级解析域名,指向这个CNAME:

      

      这样回域名管理中刷新一下,直到通知你域名创建成功以后即可。

      

    Java测试上传文件

    创建一个Java应用

      由于要安装七牛云的SDK,我们将我们的Java应用转换为Maven应用。

      项目上右键 Add Framework Support  然后选中Maven,点击OK

      

    添加第三方类库

    <dependencies>
        <dependency>
          <groupId>com.qiniu</groupId>
          <artifactId>qiniu-java-sdk</artifactId>
          <version>7.2.11</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.squareup.okhttp3</groupId>
          <artifactId>okhttp</artifactId>
          <version>3.3.1</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.google.code.gson</groupId>
          <artifactId>gson</artifactId>
          <version>2.6.2</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>com.qiniu</groupId>
          <artifactId>happy-dns-java</artifactId>
          <version>0.1.4</version>
          <scope>compile</scope>
        </dependency>
        <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.12</version>
          <scope>test</scope>
        </dependency>
      </dependencies>

    编写测试代码

    import com.google.gson.Gson;
    import com.qiniu.common.QiniuException;
    import com.qiniu.common.Zone;
    import com.qiniu.http.Response;
    import com.qiniu.storage.Configuration;
    import com.qiniu.storage.UploadManager;
    import com.qiniu.storage.model.DefaultPutRet;
    import com.qiniu.util.Auth;
    
    import java.util.Scanner;
    
    public class Main {
    
        public static void main(String[] args) {
            /*
            * Configuration 表示带指定Zone对象的配置类
            * 其中Zone 2 表示华南地区
            * */
            Configuration cfg = new Configuration(Zone.zone2());
            UploadManager uploadManager = new UploadManager(cfg);
            String accessKey = "XXXXX";
            String secretKey ="YYYYY";
            String bucket= "你当时建的存储空间的名称";
            Scanner scanner = new Scanner(System.in);
            String filePath = scanner.nextLine();
            //Key 表示文件上传到服务器中的名称,为空的话默认为文件Hash值
            String key = filePath.substring(filePath.lastIndexOf("/")+1);
            Auth auth = Auth.create(accessKey,secretKey);
            String upToken = auth.uploadToken(bucket);
            try {
                Response response = uploadManager.put(filePath,key,upToken);
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(),DefaultPutRet.class);
                System.out.println(putRet.hash);
                System.out.println(putRet.key);
            } catch (QiniuException e) {
                e.printStackTrace();
            }
        }
    }

    其中秘钥的位置在这里

      

  • 相关阅读:
    【C++模版之旅】静态多态的讨论
    UBI(unsorted block image )块管理
    CSS多级数字序号的目录列表(类似3.3.1.这样的列表序号)
    MyBatis映射文件的resultMap如何做表关联
    爱上演讲的程序猿
    PHP中文汉字验证码
    设计模式之(二)Adapter模式
    sphinx全文检索之PHP使用教程
    [置顶] 【cocos2d-x入门实战】微信飞机大战之十三:游戏场景过渡
    计算机的族谱
  • 原文地址:https://www.cnblogs.com/MrSaver/p/9864077.html
Copyright © 2011-2022 走看看