阿里-oss

3 篇文章 0 订阅
订阅专栏

文档使用手册

如何使用OSS控制台、ossutil、ossbrowser、OSSSDK_对象存储-阿里云帮助中心

1开通oss

2 创建Bucket

 3 细分还可以创建文件夹

 4 浏览器直接浏览

oss好像升级了,默认直接就下载文件。需要改变为 Content-Type: image/jpg ,但是也不是所有浏览器都好使。 使用https方式访问即可。

 

 5想要word也能在线浏览(开通智能媒体即可)

代码(jdk9或以上版本需要添加jar)

OSS Java SDK的多种安装方式介绍_对象存储 OSS-阿里云帮助中心

        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>3.15.1</version>
        </dependency>
       <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.9</version>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.58</version>
        </dependency>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>4.6.3</version>
        </dependency>
import com.aliyun.oss.OSS;
import com.aliyun.oss.OSSClientBuilder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class AliyunOssConfig {

    @Value("${oss.accesskey:}")
    private String accesskey;
    @Value("${oss.accessSecret:}")
    private String accessSecret;
    /**
     * 域名。
     */
    @Value("${oss.endpoint:}")
    private String endpoint;

    @Bean
    public OSS ossClient() {
        return  new OSSClientBuilder().build(endpoint, accesskey, accessSecret);
    }
}
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
public class OssResponse {
    /**
     * 访问地址 例如: http://xx.oss-cn-beijing.aliyuncs.com/uat/aa.txt
     */
   private String url;
    /**
     * 文件完整路径(带文件名)  例如:uat/aa.txt
     * 文件下载有用这个参数
     */
    private String filePath;
    /**
     * 文件名 例如:aa.txt
     */
    private String fileName;
}
import com.aliyun.oss.OSS;
import com.aliyun.oss.model.OSSObject;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.io.*;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;


@Component
public class OssUtil {
    @Value("${oss.bucketName:}")
    private String bucketName;
    /**
     * 域名。
     */
    @Value("${oss.endpoint:}")
    private String endpoint;
    /**
     * bucket下文件夹名称
     */
    @Value("${oss.fileFolder:}")
    private String fileFolder;

    private String http="https";
    @Autowired
    private OSS ossClient;
    /**
     * 上传文件到阿里云oss
     * @param file
     * @return   文件的访问路径 // http://yoing.oss-cn-beijing.aliyuncs.com/pro/exampleobjec.txt
     */
    public OssResponse upload(File file) {
        //文件后缀  .pdf
        String suffix = file.getName().substring(file.getName().lastIndexOf("."));
        String filename = UUID.randomUUID().toString();
        StringBuilder key = new StringBuilder();
        if(StringUtils.isNotBlank(fileFolder)){
            key.append(fileFolder+"/");
        }
        key.append(filename+suffix);
      /*  ObjectMetadata meta = new ObjectMetadata();
        // 指定上传的内容类型。
        meta.setContentType("text/plain;charset=utf-8");
         ossClient.putObject(bucketName,key.toString(),file,meta);*/
        ossClient.putObject(bucketName,key.toString(),file);
        StringBuilder url = new StringBuilder();
        url.append(http+"://");
        url.append(bucketName).append(".");
        url.append(endpoint).append("/");
        if(StringUtils.isNotBlank(fileFolder)){
            url.append(fileFolder).append("/");
        }
        url.append(filename+suffix);
        return new OssResponse(url.toString(),fileFolder.concat("/").concat(filename+suffix),filename+suffix);
    }

    /**
     * 上传
     * @param file
     * @return
     */
    public OssResponse upload(MultipartFile file) throws IOException {
        String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
        String filename = UUID.randomUUID().toString();
        StringBuilder key = new StringBuilder();
        if(StringUtils.isNotBlank(fileFolder)){
            key.append(fileFolder+"/");
        }
        key.append(filename+suffix);
     /*   ObjectMetadata meta = new ObjectMetadata();
        // 指定上传的内容类型。
        meta.setContentType("image/png;charset=utf-8");*/
        ossClient.putObject(bucketName,key.toString(),new ByteArrayInputStream(file.getBytes()));
        StringBuilder url = new StringBuilder();
        url.append(http+"://");
        url.append(bucketName).append(".");
        url.append(endpoint).append("/");
        if(StringUtils.isNotBlank(fileFolder)){
            url.append(fileFolder).append("/");
        }
        url.append(filename+suffix);
        return new OssResponse(url.toString(),fileFolder.concat("/").concat(filename+suffix),filename+suffix);
    }

    /**
     * 下载
     * @param response
     * @param url  例如: https://yoing.oss-cn-beijing.aliyuncs.com/pro/03e7ef10-9401-4242-96fa-27a8fba4049e.docx
     * @throws IOException
     */
    public void download(HttpServletResponse response,String url) throws Exception {
        // 判断 bucket 是否存在
        Boolean flag_bucket = ossClient.doesBucketExist(bucketName);
        if(!flag_bucket){
            throw new Exception("bucket不存在");
        }
        String[] split = url.split("\\/");
        String fileName =split[split.length-1];
        String filePath=fileFolder +"/"+fileName;
        String[] split1 = fileName.split("\\.");
        String mimeType =split1[split1.length-1];
        // 判断 要下载的文件 是否存在
        Boolean flag_file = ossClient.doesObjectExist(bucketName, filePath);
        if(!flag_file){
           throw new Exception("文件不存在,或问价路径不对");
        }
        OSSObject ossObject = ossClient.getObject(bucketName, filePath);
        InputStream objectContent = ossObject.getObjectContent();
        //  response.setContentType(getContentType(mimeType));
        //设置响应头类型:content-type
        response.setHeader("Content-Type", getContentType(mimeType));
        response.setCharacterEncoding("UTF-8");
        //  response.setCharacterEncoding(null); // 设置为null,否则Content-Type会带上charset=UTF-8
        // 解决中文文件名乱码
        response.setHeader("Content-disposition","attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
        response.setHeader("filename",URLEncoder.encode(fileName, "UTF-8"));
        byte[] buffer = new byte[1024];
        OutputStream os = response.getOutputStream();
        int len = 0;
        while ((len = objectContent.read(buffer)) > 0) {
            os.write(buffer, 0, len);
        }
        objectContent.close();
        os.flush();
        os.close();
    }

    /**
     * 下载
     * @param response
     * @return
     */
    public void download123(HttpServletResponse response,String url) throws IOException {
        // 判断 bucket 是否存在
        Boolean flag_bucket = ossClient.doesBucketExist(bucketName);
        String filePath="pro/03e7ef10-9401-4242-96fa-27a8fba4049e.docx";
        String fileName="03e7ef10-9401-4242-96fa-27a8fba4049e.docx";
        String[] split = fileName.split("\\.");
        String mimeType =split[split.length-1];
        // 判断 要下载的文件 是否存在
        Boolean flag_file = ossClient.doesObjectExist(bucketName, filePath);

        OSSObject ossObject = ossClient.getObject(bucketName, filePath);
        InputStream objectContent = ossObject.getObjectContent();
        byte[] buffer = new byte[objectContent.available()];
        objectContent.read(buffer);
        objectContent.close();

        response.setContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8");
        //设置响应头类型:content-type
     //   response.setHeader("Content-Type", getContentType(mimeType));
       // response.setCharacterEncoding("UTF-8");
      //  response.setCharacterEncoding(null); // 设置为null,否则Content-Type会带上charset=UTF-8
        // 解决中文文件名乱码
        response.setHeader("Content-disposition","attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
        response.setHeader("filename",URLEncoder.encode(fileName, "UTF-8"));
        OutputStream ou = response.getOutputStream();
        ou.write(buffer);
        ou.flush();
        ou.close();

    }

   /**
     *   给访问url加过期时间
     * @param url
     * @return
     */
    public String lookFileExpiration(String url) throws IOException, URISyntaxException {
        //到期时间
        Date expiration = new Date((new Date()).getTime() + 600000L);
        // http://yoing.oss-cn-beijing.aliyuncs.com/pro/exampleobjec.txt
        //文件夹+问价名
        // String key="pro/exampleobjec.txt";
        String[] endpoints = url.split(endpoint);
        String key = endpoints[1].substring(1);
        URL url1 = ossClient.generatePresignedUrl(bucketName, key, expiration);
        String urlStringInternal = url1.toURI().toString();
        String urlString = urlStringInternal.replace("-internal.", ".");
        return urlString;
    }

    public static void main(String[] args) {
        String url="https://mybucket.oss-cn-beijing.aliyuncs.com/uat/aaa.png";
       //bucket
        String bucketName="mybucket";
        //域名
        String endpoint="oss-cn-beijing.aliyuncs.com";
        //文件夹
        String fileFolder="uat";
    }


    private String getContentType(String fileName) {
        Map<String, String> map = new HashMap<>();
        map.put("bmp", "image/bmp");
        map.put("git", "image/gif");
        map.put("png", "image/png");
        map.put("jpg", "image/jpeg");
        map.put("jpeg", "image/jpeg");
        map.put("wbmp", "image/vnd.wap.wbmp");
        map.put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");
        map.put("doc", "application/msword");
        map.put("xla", "application/vnd.ms-excel");
        map.put("xlam", "application/vnd.ms-excel");
        map.put("xlsx", "application/vnd.ms-excel");
        return map.get(fileName);
    }

}

ali-oss.zip
06-20
前端大文件上传到ali-oss时,自己参考demo ,中间是两个上传示例,都是是分片断点续传,且有上传进度条,小文件也可以使用
阿里OSS
xiaowei20091124的专栏
08-31 7915
比如网站的 图片、视频等文件就可以存放在 OSS 中(海量数据,自己维护起来麻烦,交给其他人去维护),每次从 OSS 中获取即可。OSS 具有与平台无关的 RESTful API 接口,可以在任意应用、任意时间、任意地点 存储与访问 任何类型的数据。简单地理解:OSS 基于网络提供数据存储服务,通过网络可以随时存储、获取 文本、图片、音频、视频等 非结构化数据。对象是 OSS 存储的基本单位,由元信息(Object Meta)、数据(Data)、文件名(key)组成。存储类型分为:标准、低频访问、归档。..
云计算系列之阿里OSS云存储实战解析
最新发布
sinat_30844883的博客
07-24 1745
阿里云对象存储服务(Object Storage Service),简称 OSS,是阿里云提供的海量、安全、低成本、高可靠的云存储服务。 OSS 具有与平台无关的 RESTful API 接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。
阿里云服务(一)——OSS
This My Life - chisj
01-20 1627
转载自:http://blog.csdn.net/liujiahan629629/article/details/45290311 阿里电子商务迄今是中国最大的电商网站,各个厂商都在去模仿。就像google的大数据处理,hadoop的思想等等,只有做出了一些成绩,起了带头羊,那么将会是非常吃香的。从今天开始简单学习了解一下阿里的各种云服务。今天先看一下OSS。          O
阿里OSS
小琳猫的博客
02-06 6436
本篇博客对阿里OSS的基本概念和使用进行总结,旨在快速上手该云存储产品,更为详细的内容可以参考官方文档,日后再进行补充
阿里OSS入门
04-09 1463
简介 阿里云的官网:阿里云的官网 阿里OSS 登录之后会出现如下界面: 点击“管理控制台”: 点击“创建 Bucket”: 创建Bucket的时候,会让你填写相关信息,一般来说我们只填名称和选择区域,其他都默认就好。选择完毕后,点击【确定】完成创建。 完成创建后,就可以看到存储空间 hcbucket1了,右边是空间的相关介绍。记住这个桶名 bucketName和Endpoint,等会写代码的时候需要。 阿里云的OSS只是一个服务,要使用服务,首先需要 AccessId 和 AccessKey
webpack-aliyun-oss-plugin:webpack阿里oss上传插件
03-14
webpack-aliyun-oss-plugin webpack上传阿里oss插件,能够在文件输出到output.path之后自动将静态资源发布到阿里云 注意:这个插件应该在生产环境使用 安装 npm install @msidolphin/webpack-aliyun-oss-plugin -...
aliyun-oss-java-sdk-demo-mvn-3.10.2_阿里OSS_
09-29
在这个"aliyun-oss-java-sdk-demo-mvn-3.10.2"压缩包中,包含了使用Java SDK进行阿里OSS服务交互的示例代码,特别适合Java开发者快速理解和接入阿里OSS。 首先,我们需要了解阿里OSS Java SDK的基本概念和...
阿里OSS ali-oss 6.0 npm代码包带案例修复版本 编译打包js,可以直接引入使用
11-02
案例中OSS.wrapper属于6.x以下版本,已改为OSS方式,采用实际子账户进行分片上传,发现没有问题; 操作步骤: 1,npm install 2,cd example 3,npm install 4,npm run server 5,npm run dev 别忘记配置example/...
aliyun-sdk-oss-2.8.2-API文档-中文版.zip
06-04
赠送jar包:aliyun-sdk-oss-2.8.2.jar; 赠送原API文档:aliyun-sdk-oss-2.8.2-javadoc.jar; 赠送源代码:aliyun-sdk-oss-2.8.2-sources.jar; 赠送Maven依赖信息文件:aliyun-sdk-oss-2.8.2.pom; 包含翻译后的API...
aliyun-sdk-oss-3.10.2.jar
04-14
aliyun-sdk-oss-3.10.2.jar
阿里OSS介绍
weixin_64051447的博客
06-21 5083
比如网站的 图片、视频等文件就可以存放在 OSS 中(海量数据,自己维护起来麻烦,交给其他人去维护),每次从 OSS 中获取即可。OSS 具有与平台无关的 RESTful API 接口,可以在任意应用、任意时间、任意地点 存储与访问 任何类型的数据。简单地理解:OSS 基于网络提供数据存储服务,通过网络可以随时存储、获取 文本、图片、音频、视频等 非结构化数据。对象是 OSS 存储的基本单位,由元信息(Object Meta)、数据(Data)、文件名(key)组成。存储类型分为:标准、低频访问、归档。
阿里OSS使用教程
qq_44918331的博客
01-15 3830
阿里 OSS 1. 概述 OSS(Object Storage Service)是阿里云提供的一种 Restful 对象存储服务,可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。 存储类型 OSS 提供标准(频繁访问的数据)、低频访问(不经常访问的数据)、归档(长期保存的数据)三种存储类型 存储空间(Bucket) 存储空间是您用于存储对象(Object)的容器,所有的对象都必须隶属于某个存储空间。存储空间具有各种配置属性,包括地域、访问权限、存储类型等。可以根据不同类型的存储空间来存储
阿里OSS--基本介绍
ChengHuanHuaning的博客
04-19 2365
文章目录前言一.文件存储系统介绍1.储存系统的选择二.阿里OSS的基础介绍三.阿里OSS的基础概念存储空间(Bucket)对象/文件(Object)Region(地域)Endpoint(访问域名)AccessKey(访问密钥)强一致性数据冗余机制四.阿里OSS基础概念对比图(方便记忆理解)OSS 术语表 前言 相关链接 Fastdfs—基本介绍和底层模型详解 阿里OSS–官方文档 阿里OSS–基本...
阿里oss
weixin_44152895的博客
10-20 1168
#oss简介 阿里云对象存储服务(Object Storage Service,简称OSS),是阿里云对外提供的海量、安全、低成本、高可靠的云存储服务。您可以通过本文档提供的简单的REST接口,在任何时间、任何地点、任何互联网设备上进行上传和下载数据。基于OSS,您可以搭建出各种多媒体分享网站、网盘、个人和企业数据备份等基于大规模数据的服务。 您可以使用阿里云提供的API/SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里OSS。数据存储到阿里OSS以后,您可以选择标准类型(Standard)的
ali oss上传文件_上传文件 - 对象存储 OSS - 阿里
weixin_28837817的博客
01-17 1075
分片上传当需要上传的文件较大时,可以通过MultipartUpload接口进行分片上传。分片上传是指将要上传的文件分成多个数据块(Part)来分别上传。当其中一些分片上传失败后,OSS将保留上传进度记录,再次重传时只需要上传失败的分片,而不需要重新上传整个文件。一般大于100MB的文件,建议采用分片上传的方法,通过断点续传和重试,提高上传成功率。在使用MultipartUpload接口时,如果遇到...
阿里 对象存储OSS 云存储服务
qq_53374893的博客
04-05 691
对象存储服务(Object Storage Service ,OSS) 是一种 海量、安全、低成本、高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
阿里OSS 默认的x-oss-force-download 要怎么修改
06-02
阿里OSSJava SDK中,可以通过设置GetObjectRequest对象的ResponseHeaders参数来修改x-oss-force-download参数的值。示例代码如下: ```java GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, objectName); GetObjectRequest.ResponseHeaderOverrides responseHeaders = new GetObjectRequest.ResponseHeaderOverrides(); responseHeaders.setContentDisposition("attachment;filename=" + filename); // 设置下载文件名 responseHeaders.set("x-oss-force-download", "true"); // 设置 x-oss-force-download 参数 getObjectRequest.setResponseHeaders(responseHeaders); OSSObject ossObject = ossClient.getObject(getObjectRequest); ``` 以上代码中,设置了x-oss-force-download参数的值为true,并且设置了ResponseHeaders参数的ContentDisposition属性,用于设置下载文件的文件名。需要注意的是,ResponseHeaders参数的设置只会影响当前的GetObjectRequest请求,不会对其他请求产生影响。
写文章

热门文章

  • mybaties应用(常用sql函数) 9702
  • nginx-2-讲解与使用 9104
  • elasticsearch安装 6439
  • nginx-1- 安装(linux) 5391
  • git用户凭证配置 4907

分类专栏

  • spring 13篇
  • 阿里使用手册 3篇
  • 微服务框架
  • 个人
  • docker
  • 搜索 3篇
  • 分布式文件系统 1篇
  • 业务玩法 1篇
  • 数据库中间件 5篇
  • jvm

最新评论

  • gitee和idea集成

    CSDN-Ada助手: CS入门 技能树或许可以帮到你:https://edu.csdn.net/skill/gml?utm_source=AI_act_gml

  • springboot应用实战

    天蓝999: 可以的,我看的另一个SpringBoot项目视频,从零开发,十天彻底掌握了项目实战:https://knife.blog.csdn.net/article/details/134911141

  • elasticsearch安装

    淼淼COLDE: 修正下,jdk版本支持那里,有些问题,参照官网哈 https://www.elastic.co/cn/support/matrix#matrix_jvm

  • 达梦数据库

    LaOngDaoxing: [code=html] DM8 SQL [-2685]:试图在blob或者clob列上排序或比较 错误解决方法 https://www.cndba.cn/cndba/dave/article/116378 ENABLE_BLOB_CMP_FLAG: 动态参数,可以在会话级别直接修改。 用来控制DB是否支持大字段类型的比较。 0:不支持;1:支持,此时 DISTINCT、ORDER BY、 分析函数和集函数支持对大字段进行处理。 [/code]

  • mybaties应用(常用sql函数)

    我的搬砖日常: 这个是我以后写的时候好copy的,想偷个懒表情包

大家在看

  • QT--自定义信号槽、信号槽的连接方式、信号槽扩展、一个信号连接两个槽函数、多个信号连接一个槽函数、信号连接信号、断开连接 184
  • 解锁二叉树的魅力:链式实现详解 1763
  • Scala中fitter flatten函数
  • 从不一样的角度体会MATLAB 268
  • 双向链表 —— 初始化、尾插、头插、bool类型判断、尾删、头删、查找数据、在pos位置之后插入结点、删除指定位置结点、销毁链表、打印函数 1142

最新文章

  • idea连接mysql/Mybatis-X插件自动生成代码
  • springboot读取文件
  • redis实战spring-boot-starter-data-redis
2024年9篇
2023年10篇
2022年68篇
2021年1篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司廊坊网站搜索优化青岛正规网站优化软件代理网站外优化是指三明网站优化徐州丰县网站优化有哪些铜陵网站关键词优化费用公明做网站优化河南家纺行业网站优化推广价格菏泽企业网站关键词优化哪家好游戏行业网站优化宣传优化网站论坛沙头角综合网站优化青县网站优化选择哪家公司比较好网站如何优化无锡网站搜索优化外包协议安阳做网站优化清远卫浴网站seo优化如何进行企业网站的优化网站关键词推广优化报价网站seo优化专家网站排名优化流量瑞安高质量百度网站优化价格seo优化怎么提高网站排名武汉网站推广优化公司台湾省优化网站排名望牛墩网站优化吴江网站优化推广服务荆州优化网站投媒网网站内容的优化方法雷州seo网站排名优化软件香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化