上云无忧 > 文档中心 > 百度智能云对象存储BOS搭建美图APP
对象存储BOS
百度智能云对象存储BOS搭建美图APP

文档简介:
下载完 APP 并安装完成后可以直接通过应用服务器地址访问 BOS ,并进行图片处理。应用服务器地址是指搭建移动应用的后台服务器,默认开启的端口为8080。关于 BOS 的区域和 Bucket 设置都需要在应用服务器进行配置。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

美图 APP 示例

手机美图示例 APP 下载地址:

下载完 APP 并安装完成后可以直接通过应用服务器地址访问 BOS ,并进行图片处理。应用服务器地址是指搭建移动应用的后台服务器,默认开启的端口为8080。关于 BOS 的区域和 Bucket 设置都需要在应用服务器进行配置。

APP操作方法

该 APP 支持用户上传、下载和下载缩放图三个功能。

  • 上传:用户填写应用服务器地址后,选择本地需要上传的图片,图片会显示在操作界面下方,点击上传即可。上传成功会显示 “File Uploaded”。
  • 下载:用户填写需要下载的文件名称,点击下载按钮即可。下载成功会显示 “File Downloaded”。
  • 下载缩放图:下载缩放图时必须指定明确的图片后缀如 jpg ,然后设置下载图形的宽和高以及旋转角度,点击下载缩放图,则会获取经过处理的图形。下载成功会显示 “File Downloaded”。 Demo 版本下载后的图片都不会存储到本地。

如何搭建美图APP

搭建美图 APP 包含以下几个步骤:

  1. 开启 BOS 服务并创建 Bucket 用于存储图片,开通和创建 Bucket 的详细操作请参见创建 Bucket。如果要下载缩放图,需要保证指定的 Bucket 开启了图片处理服务。
  2. 开通 STS 服务,用于保证上传和下载图片的安全性。
  3. 部署应用服务器,实现和 BOS 及客户端的交互,美图 APP 代码请参考:BOS美图APP代码。
  4. 下载安装美图APP。

如何部署应用服务器

  1. 从 github 上下载sample code的代码包,代码包主要包含 “bos_meitu_app” 和 “bos_meitu_app_server” 两部分,其中 “bos_meitu_app” 主要用于定义APP界面及相关动作,“bos_meitu_app_server” 为应用服务器相关配置。
  2. 修改 “bos_meitu_app_server” 中的 “MeituAppServerHandler.java” 文件,其中定义了 ak/sk、BOS 服务器对应的 Endpoint 和 Bucket 名称等信息。

    public String getBosInfo(String bosRequestType) {
              //配置ak、sk
              String bosAk = "开发者的ak";
              String bosSk = "开发者的SK";
              //百度智能云提供的stsendpoint
              String stsEndpoint = "http://sts.bj.baidubce.com";
    
              BceCredentials credentials = new DefaultBceCredentials(bosAk, bosSk);
              BceClientConfiguration clientConfig = new BceClientConfiguration();
              clientConfig.setCredentials(credentials);
              clientConfig.setEndpoint(stsEndpoint);
              StsClient stsClient = new StsClient(clientConfig);
              GetSessionTokenRequest stsReq = new GetSessionTokenRequest();
              // request expiration time
              stsReq.setDurationSeconds(1800);
              GetSessionTokenResponse stsToken = stsClient.getSessionToken(stsReq);
              String stsTokenAk = stsToken.getCredentials().getAccessKeyId();
              String stsTokenSk = stsToken.getCredentials().getSecretAccessKey();
              String stsTokenSessionToken = stsToken.getCredentials().getSessionToken();
    
              // BOS服务的Endpoint地址,及Bucket名称。
              String bosEndpoint = "http://bj.bcebos.com";
              String bucketName = "Bucket名称";
              if (bosRequestType.equalsIgnoreCase("download-processed")) {
                  // the binded image processing domain set by App developer on bce console
                  bosEndpoint = "http://" + bucketName + ".bj.bcebos.com";
              }
    
              // prefix is the bucket name, and does not specify the object name
              BosInfo bosInfo = new BosInfo(stsTokenAk, stsTokenSk, stsTokenSessionToken, bosEndpoint,
                      bucketName, "", bucketName);
    
              String res = "";
              ObjectMapper mapper = new ObjectMapper();
              try {
                  res = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(bosInfo);
              } catch (JsonProcessingException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                  res = "";
              }
              System.out.println(res);
              try {
                  res = new String(res.getBytes(), "utf8");
              } catch (UnsupportedEncodingException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
                  res = "";
              }
              return res;
          }
  3. 将修改完成的服务器代码重新编译打包为 bos_meitu_app_server.jar,将 jar 包上传到应用服务器上并执行命令 java -jar bos_meitu_app_server.jar。
相似文档
  • 上传图片到 BOS 过程中 APP、APP Server 和 BOS 的交互过程如下图所示: APP 上传图片时向 APP Server 发送获取上传方式请求。 APP Server 向 STS 服务器请求 BOS 使用 STS 访问的 AK/SK。
  • 示例代码以 Java 语言为例讲解美图 APP 的实现,代码分为 APP 客户端和应用服务器端两部分。 APP 端代码主要包括 BOSClient 初始化、从 APP Server 端获取 BOS 信息、及上传文件到 BOS 三个功能模块。
  • HTTP(HyperText Transfer Protocol),即超文本传输协议,是互联网上应用最为广泛的一种网络协议。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。通过HTTP或者HTTPS协议请求的资源由统一资源标识符(Uniform Resource Identifiers,URI)来标识。
  • 混合云融合了公有云和私有云,是近年来云计算的主要模式和发展方向。企业出于安全考虑更愿意将数据存放在私有云中,但是同时又希望获得公有云的计算资源。百度智能云混合云方案中客户 IDC 和百度智能云 VPC 通过专线/ VPN 打通,实现云上云下业务紧密连接,既可以利用云上资源的按需使用和易扩展的特性,又可以利用本地 IDC 满足合规性要求。
  • 存储分发场景下,BOS用于存放网站的静态图片、视频文件和应用服务的下载内容等文件。存储分发场景通常有以下特点: 静态文件访问量大,访问频率高,服务器负载高;
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部