精华内容
下载资源
问答
  • alioss

    2019-12-13 18:53:54
    /** * @Author zbf * @DATA 2019/9/5 19:27 * @ClassIntroduction */ public class AliOss { private static String endpoint; private static String accessKeyId; private static String accessKeySecret; static...
    <!--阿里oss对象存储-->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
        <version>3.5.0</version>
    </dependency>

     

    package com.wait.ali;
    
    import com.aliyun.oss.OSS;
    import com.aliyun.oss.OSSClientBuilder;
    import com.aliyun.oss.model.PutObjectRequest;
    import com.wait.file.ResourcesUtil;
    
    import java.io.*;
    
    
    /**
     * @Author zbf
     * @DATA 2019/9/5 19:27
     * @ClassIntroduction
     */
    public class AliOss {
    
        private static String endpoint;
        private static String accessKeyId;
        private static String accessKeySecret;
    
        static {
            /**
             * 自己的密钥
             */
            endpoint= ResourcesUtil.getValueByKeyAndPath("endpoint","oss.properties");
            accessKeyId=ResourcesUtil.getValueByKeyAndPath("accessKeyId","oss.properties");
            accessKeySecret=ResourcesUtil.getValueByKeyAndPath("accessKeySecret","oss.properties");
        }
    
    
        private static String bucketName = "*** Provide bucket name ***";
        private static String key = "*** Provide key ***";
    
        /**
         * 阿里oss 上传文件
         * @param bucketName 新建的容器的名字
         * @param fileName 文件名
         * @param file 文件
         * @return 返回上传的路径
         */
        public static String uploadFileOssFile(String bucketName,String fileName,File file){
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
            InputStream inputStream=null;
            try {
                inputStream = new FileInputStream(file);
                ossClient.putObject(new PutObjectRequest(bucketName, fileName, inputStream));
            } catch (FileNotFoundException e) {
                e.printStackTrace();
            } finally {
                try {
                    inputStream.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                ossClient.shutdown();
            }
            return "https://"+bucketName+"."+endpoint+"/"+fileName;
        }
       
    /**
     * 删除
     * @param bucketName
     * @param fileName
     */
    public static void delFile(String bucketName,String fileName){
        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
        ossClient.deleteObject(bucketName, fileName);
        ossClient.shutdown();
    }
    
        public static void main(String[] args) {
            String url="C:\\Users\\Administrator\\Desktop\\video\\cygs.mp4";
            File file = new File(url);
    
            String s = uploadFileOssFile("yqback", file.getName(), file);
            System.out.println(s);
        }
    }
     
    展开全文
  • umi-plugin-alioss umi,umi-plugin,alioss 基于 umi2.x 插件体系编写 说明 基于umi-plugin系统封装的一个插件,用于构建成功之后上传静态资源到阿里云 使用 yarn add umi-plugin-alioss -D yarn add ali-oss -D 在....
  • alioss-form-源码

    2021-03-18 07:32:54
    composer require airan/alioss-form php artisan vendor:publish --tag=alioss-form 配置 新建配置文件config / alioss.php <?php return [ 'OSS_ACCESS_ID' => '0I********Dx', 'OSS_ACCESS_KEY' => 'N*****...
  • Laravel开发-laravel-alioss

    2019-08-28 16:37:15
    Laravel开发-laravel-alioss 拉拉维尔的阿里云OSS
  • AliOSS删除附件

    2021-01-20 17:13:39
    /** ... *@ param string $attachment 图片地址 可以是完整地址也可以是相对地址 */ public function ... $config = get_addon_config("alioss"); if (isset($config['syncdelete'])) { $endpoint = "http://"
    /**
     * 附件删除后  前端上传图片后点击删除,后端真实删除带有图片视频的文章时调用
     *@ param string $attachment 图片地址 可以是完整地址也可以是相对地址
     */
    public function alossDelete(string $attachment)
    {
       $config = get_addon_config("alioss");
       if (isset($config['syncdelete'])) {
          $endpoint = "http://" . $config['endpoint'];
          $attachment = str_replace( ['https://modelimg.oss-cn-shanghai.aliyuncs.com/','http://modelimg.oss-cn-shanghai.aliyuncs.com/'],'',$attachment);
          $attachment = ltrim($attachment, '/');
          try {
             $ossClient = new OssClient($config['app_id'], $config['app_key'], $endpoint);
             $ress = $ossClient->deleteObject($config['bucket'], $attachment);
             //dump($ress);exit;
          } catch (OssException $e) {
             $this->error();
          }
          //如果是服务端中转,还需要删除本地文件
          if ($config['uploadmode'] == 'server') {
             $filePath = ROOT_PATH . 'public' . str_replace('/', DS, $attachment);
             if ($filePath) {
                @unlink($filePath);
             }
          }
          //如果附件表中有,则删除
          $Mattachment = db('attachment');
          if($file_id = $Mattachment->where(['storage'=>'alioss'])->value("id")){
             $Mattachment->where(['id'=>$file_id])->delete();
          }
       }
       $this->success();
    }
    
    展开全文
  • webpack-upload-alioss-plugin 用于上传 webpack 生成的所有文件到阿里云 OSS 的 webpack 插件。本插件会自动缓存已经上传过的文件,不会重复上传,提高上传速度。 插件会设置好已上传文件的浏览器缓存和 CORS 设置...
  • $ npm install --save file-cloud-alioss-uploader 用法 var fileCloudAliossUploader = require ( 'file-cloud-alioss-uploader' ) ; var config = { accessKeyId : process . env . ALIYUN_OSS_ACCESS_KEY_ID , ...
  • vue aliOSS Web端签名直传

    不多说了,踩坑的过程及其心累,上码就是了。
    附上阿里云web直传官方文档 官方文档传送门 点我跳转
    https://help.aliyun.com/document_detail/31925.html?spm=a2c4g.11186623.6.1523.50e04c07HjhF9s

    1.配置阿里云(有点重要)

    配置很重要,不然代码牛逼上天也访问不了阿里云
    在这里插入图片描述

    2.引入官方组件库

    1.脚本引入
    在index.html中引入官方js库

    <script src="http://gosspublic.alicdn.com/aliyun-oss-sdk-4.4.4.min.js"></script>
    

    2.npm引入

    npm install ali-oss
    

    由于我折腾了多种方法,无法确定哪个有效,都用上吧,无奈了

    3.在.vue中集成以下代码

    带上两个重要参数:accessid 和 accesskey,既然都要前端直传oss,那这两个参数肯定知道了

    <template>
        <div class="index">
            <div>
                法一的upload
                <input type="file" :id="newid" @change="on_click_upload_file"/>
    
            </div>
            <div class="oss_file">
                法二的upload
                <input type="file" :id="id" @change="doUpload"/>
                <hr>
                <p>
                    上传进度:{{percentage}}
                    {{percentage===1?'success!':(percentage===0?'waiting...':'uploading')}}
                </p>
                <hr>
                <ul>
                    <li v-for="u in urls">{{u}}</li>
                </ul>
            </div>
        </div>
    </template>
    
    <script>
      export default {
        name: 'UploadImgNew',
        data () {
          return {
            region: 'oss-cn-hangzhou',
            accessid: 'L***********V',
            accesskey: 'C**********************w',
            bucket: 'q*****i-test',
            host: 'https://q******i-test.oss-cn-hangzhou.aliyuncs.com/',
            id: 'upload',
            percentage: 0,
            url: '',
            urls: [],
            newid:'newfile'
          }
        },
        methods: {
          //todo 法一:两种方法一样,细微差别,第一种方法对参数介绍详细些========================================
    
          /**说明:
           * suffix  :文件后缀名
           * obj :文件名 时间戳
           * storeAs :上传到阿里云的文件地址
           */
           
          on_click_upload_file () {
            let _this = this
            /**
             * region:阿里云服务器地址
             * accessKeyId:您的key
             * accessKeySecret:您的密码,
             * bucket:你要上传到那个文件夹下; 这个需要在阿里云服务器建立
             */
            let client = new OSS.Wrapper({
              region: 'oss-cn-hangzhou',
              accessKeyId:'L****这里是你的accessid****V',
              accessKeySecret:'C****这里是你的accesskey****w',
              bucket: 'q******i-test',
            })
            /**===============*/
            const f = document.getElementById(_this.newid)
            console.log(f)
            if(f.files){
              const ff = f.files
              console.log(ff)
              for (let i = 0; i < ff.length; i++) {
                const singleFile = ff[i]
                //文件后缀
                const suffix = singleFile.name.split('.').pop()
                var obj = _this.timestamp()  // 这里是生成文件名
    
                var storeAs = `qsx-web-job/${obj}_${this.random_string(6)}.${suffix}`  //命名空间
                console.log(' => ' + storeAs)
    
                client.multipartUpload(storeAs, singleFile).then(function (result) {
                  console.log(result) //--->返回对象
                  console.log(result.url) //--->返回链接
                  const url = `${_this.host}` + results.name
                }).catch(function (err) {
                  console.log(err)
                })
              }
            }
          },
    
          /**
             * 生成文件名
             * @returns
             */
          timestamp () {
            var time = new Date()
            var y = time.getFullYear()
            var m = time.getMonth() + 1
            var d = time.getDate()
            var h = time.getHours()
            var mm = time.getMinutes()
            var s = time.getSeconds()
    
            console.log(y)
    
            return '' + y + this.add0(m) + this.add0(d) + this.add0(h) + this.add0(mm) + this.add0(s)
          },
    
          add0 (m) {
            return m < 10 ? '0' + m : m
          },
    
          //todo 法二:两种方法一样,细微差别========================================
          doUpload () {
            const _this = this
            const urls = []
            const client = new OSS.Wrapper({
              region: _this.region,
              accessKeyId: _this.accessid,
              accessKeySecret: _this.accesskey,
              bucket: _this.bucket
            })
            _this.percentage = 0
            const files = document.getElementById(_this.id)
            if (files.files) {
              const fileLen = document.getElementById(_this.id).files
              let resultUpload = ''
              for (let i = 0; i < fileLen.length; i++) {
                const file = fileLen[i]
                //文件后缀
                const suffix = file.name.split('.').pop()
                // 随机命名
                const random_name = `qsx-web-job/${this.random_string(6)}_${new Date().getTime()}.${suffix}`
                // 上传
                client.multipartUpload(random_name, file, {
                  progress: function * (percentage, cpt) {
                    // 上传进度
                    _this.percentage = percentage
                  }
                }).then((results) => {
                  // 上传完成
                  const url = `${_this.host}` + results.name
                  console.log(results,results.url,url)
                }).catch((err) => {
                  console.log(err)
                })
              }
            }
          }
          ,
    
          // 随机生成文件名
          random_string (len) {
            len = len || 32
            var chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678'
            var maxPos = chars.length
            var pwd = ''
            for (let i = 0; i < len; i++) {
              pwd += chars.charAt(Math.floor(Math.random() * maxPos))
            }
            return pwd
          }
        },
        watch: {
          url (val) {
            console.log(val)
          }
        }
      }
    </script>
    
    
    展开全文
  • AliOss文件迁移到JDOss

    2019-12-15 13:32:47
    因为项目需要把AliOss上的许多文件迁移到JDOss上,本来JDoss上有个工具可以实现迁移的,但是实际效果却不怎么好,很多文件都遗漏了,所以针对这种情况写了一个函数来判断缺少了哪些函数,缺少的从Ali下载到JD上,...

    因为项目需要把AliOss上的许多文件迁移到JDOss上,本来JDoss上有个工具可以实现迁移的,但是实际效果却不怎么好,很多文件都遗漏了,所以针对这种情况写了一个函数来判断缺少了哪些函数,缺少的从Ali下载到JD上,实现思路:因为是判断两个云上文件的差异,所以先根据prefix遍历Ali文件夹,将文件key作为key,size作为value缓存到内存中,在根据同样的prefix遍历JD云上的文件,同样缓存到map中,将Alimap的key取出一一和JD对应,JD没有的文件就从Ali下载,得到的文件流直接上传相同目录到JDOss,下面是具体代码的实现:


    //将AliOss的文件拷贝至JDOss
    func CopyAliOss2JDoss() {
    
    	//列举文件使用的prefix
    	bothverdsion := "2012"
    
    	a := ListObjectinstance{}
    	a.aliListmap = map[string]int64{}
    	a.JDListmap = map[string]int64{}
    	a.shrotmap = map[string]int64{}
    
    	// 创建OSSClient实例。
    	client, err := oss.New("xxxxxxxxxxxxxxx", "xxxxxxxxxxxxx", "xxxxxxxxxxxxxxxxx")
    	if err != nil {
    		fmt.Println("创建oss上传client Error:", err)
    		return
    	}
    	// 获取存储空间。
    	bucket, err := client.Bucket("xxxxx")
    	if err != nil {
    		fmt.Println("创建oss上传bucket Error:", err)
    		//os.Exit(-1)
    		return
    	}
    	//分页列举文件
    	marker := oss.Marker("")
    	prefix := oss.Prefix(bothverdsion)
    	//fmt.Println("列举文件:", prefix)
    	for {
    		lsRes, err := bucket.ListObjects(marker, prefix)
    		if err != nil {
    			fmt.Println("从oss获取文件失败", err)
    			return
    		}
    		for _, object := range lsRes.Objects {
    			//下载文件到working目录
    			//fmt.Println("key:", object.Key)
    			a.aliListmap[object.Key] = object.Size
    		}
    		prefix = oss.Prefix(lsRes.Prefix)
    		marker = oss.Marker(lsRes.NextMarker)
    		if !lsRes.IsTruncated {
    			break
    		}
    	}
    	logs.Info(" 获得alimap的size:", len(a.aliListmap))
    
    	JDbucket := "xxxxxx"
    	JDPrefix := bothverdsion
    	JDMarker := ""
    	input := s3.ListObjectsInput{
    		Bucket: &JDbucket,
    		Prefix: &JDPrefix,
    		Marker: &JDMarker,
    	}
    	Client := NewS3Client()
    	for {
    		output, err := Client.ListObjects(&input)
    		if err != nil {
    			logs.Error("获取JD失败:", err.Error())
    			return
    		}
    
    		for _, value := range output.Contents {
    			crtDir := *value.Key
    			size := *value.Size
    			a.JDListmap[crtDir] = size
    		}
    		input.Marker = output.NextMarker
    		input.Prefix = output.Prefix
    		if !*output.IsTruncated {
    			break
    		}
    	}
    	logs.Info(" 获得JDmap的size:", len(a.JDListmap))
    
    	for k, v := range a.aliListmap {
    		if jd, ok := a.JDListmap[k]; ok {
    			if jd != v {
    				logs.Info("ali的key:", k, "ali的size:", v, "JD的size:", jd)
    			}
    		} else {
    			logs.Info("JDmap中没有找到:", k)
    			a.shrotmap[k] = v
    		}
    	}
    
    	accessKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    	secretKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
    	creds := credentials.NewStaticCredentials(accessKey, secretKey, "")
    	config := &aws.Config{
    		Region:      aws.String("cn-south-1"),
    		Endpoint:    aws.String("xxxxxxxxxxx"),
    		DisableSSL:  aws.Bool(false),
    		Credentials: creds,
    	}
    	newSession, err := session.NewSession(config)
    
    	uploader := s3manager.NewUploader(newSession)
    	fmt.Println("---------JDshortmap szie:", len(a.shrotmap))
    	for k, _ := range a.shrotmap {
    		closer, err := bucket.GetObject(k)
    		if err != nil {
    			logs.Error("alioss下载文件失败:", err.Error())
    			continue
    		}
    		_, err = uploader.Upload(&s3manager.UploadInput{
    			Bucket: aws.String("xxxxxx"),
    			Key:    aws.String(k),
    			Body:   closer,
    		})
    		if err != nil {
    			logs.Error("JD上传失败:", err.Error())
    		} else {
    			logs.Info("上传成功 key:", k)
    		}
    		if closer != nil {
    			closer.Close()
    		}
    	}
    }
    
    //创建新的AWS S3客户端
    func NewS3Client() *s3.S3 {
    	accessKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    	secretKey := "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    
    	creds := credentials.NewStaticCredentials(accessKey, secretKey, "")
    	config := &aws.Config{
    		Region:      aws.String("cn-south-1"),
    		Endpoint:    aws.String("xxxxxxxx"),
    		DisableSSL:  aws.Bool(false),
    		Credentials: creds,
    	}
    	client := s3.New(session.New(config))
    	return client
    }

     

    展开全文
  • Vue + Alioss前端上传图片准备工作安装依赖js工具类封装使用end 准备工作 需要注册一个ali云申请accesskeys,具体的操作请参考 link. 安装依赖 npm install ali-oss js工具类封装 let OSS=require('ali-oss'); let...
  • vue-alioss-组件封装

    2018-04-23 19:23:00
    <template> <div class="vui_alioss_upload"> <div @click="uloadImg()"><slot></slot></div> <div class="vui_alioss_file"> &...
  • docker-registry-driver-alioss 这是一个基于 aliyun.com 的 Open Storage Service 的 docker-registry 后端驱动程序。 用法 假设你有一个可用的 docker-registry 和 oss api 设置(你可以在这里得到它: : )。 ...
  • alioss插件 入门 该项目是插件。 要开始使用fastlane-plugin-alioss ,请通过运行以下fastlane-plugin-alioss将其添加到您的项目中: fastlane add_plugin alioss 关于艾里奥斯 将ipa / apk上传到aliyun oos服务器...
  • python alioss 使用python开发阿里云服务

    千次阅读 2012-06-23 15:37:22
    (PS:一个下午后,终于打包完了一个pypi包,也取了个名字叫alioss,欢迎大家使用) STEP 1: 安装alioss easy_install alioss STEP 2: from alioss.oss_api import * from alioss.oss_xml_handler import * ...
  • IMAGES_STORE ='alioss:// dlimgs'#图片存储类型,dlimgs是存储文件的存储桶的名称 ALI_OSS_ACCESS_KEY_ID ='您的访问密钥'#访问密钥ID ALI_OSS_ACCESS_KEY_SECRET ='您的访问密钥秘密'#访问密钥 ALI_OSS_...
  • ember-cli-deploy-alioss ember-cli-deploy 用于将文件上传到阿里云对象存储。 这个插件原本是从到setup一个分支。 所有功劳开发人员。 阿里云OSS政策要求 确保启用存储桶的ACL公开读取。 快速开始 要快速启动并...
  • AliOSS上传图片

    千次阅读 2019-06-03 18:39:02
    一、安装node.js ----oss-SDK: npm install ali-oss ①同步方式创建连接: new OSS() ~ ②异步方式创建连接: new OSS.wrapper() 二、实例化OSS ①将阿里云后台生成的accessKeyId与accessKeySecret直接放到...
  • 1、介绍  最近开发了一个项目,其中需要一个上传图片到阿里云的 oss 上面,就是上传图片到阿里云的 oss 上面。  因为之前开发过 vue 的阿里云 oss 上传,所以直接复制粘 vue 的组件。... xl_alioss_vue...
  • 开发主动安全平台的博客文章网上太少了,搜集下做个索引,定期来看看. ... Netty4 + SpringBoot2 + RabbitMq + Redis + AliOSS 构建高性能粤标主动安全平台 GB∕T 35658平台过检 已通过最新的部标JT/
  • 阿里云 OSS 上传插件, 可在 webpack 打包结束后将来 webpack 生成的文件自动上传到 OSS 中。 支持 webpack 3、4、5 特色 上传文件后, 可删除该文件(默认开启) - 避免将无用文件上传至服务器 上传失败后自动重试 ...
  • 封装的阿里云的OSS上传的jar包,不想写代码的同学可以直接拿去用
  • Alioss python Pypi包更新记录

    千次阅读 2013-11-10 00:23:04
    from alioss.oss_xml_handler import *  为 from oss_api import *  from oss_xml_handler import *  为的是与官方接口保持一致,以后就不再更新了。 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 774
精华内容 309
关键字:

alioss