精华内容
下载资源
问答
  • 要下载脚本,就得有脚本下载, 所以我们先去后台上传几个脚本云脚本123.jpg从图片中可以看到这个_File表中有字段 name, url,我们查找脚本名字是name的urlvar config = {appId: '填写你自己的',appKey: '填写你自己的',...

    在autojs实现云端脚本(二)中,

    我们实现了点击脚本列表, 弹出脚本名字的功能,

    我们继续实现, 根据脚本名字下载脚本的功能.

    要下载脚本,就得有脚本下载, 所以我们先去后台上传几个脚本

    22e4b7c1e40b

    云脚本123.jpg

    从图片中可以看到这个_File表中有字段 name, url,

    我们查找脚本名字是name的url

    var config = {

    appId: '填写你自己的',

    appKey: '填写你自己的',

    }

    var scriptName = "云脚本1号.js"

    var scriptUrl = util.format('https://n2y09qsw.api.lncld.net/1.1/classes/_File?where={"name":"%s"}', scriptName)

    var url = encodeURI(scriptUrl)

    var r = http.get(url, {

    headers: {

    "X-LC-Id": config.appId,

    "X-LC-Key": config.appKey,

    "Content-Type": "application/json"

    }

    }).body.json()

    console.log(r)

    if (r.results && r.results.length > 0 && r.results[0].name === scriptName) {

    log('找到了指定名字的脚本')

    console.log(r.results[0].url)

    } else {

    log('没找到指定名字的脚本')

    }

    找到链接之后, 我们就可以下载脚本了.

    var url='http://lc-n2Y09QsW.cn-n1.lcfile.com/3c4f3b2055b7001e439b/%E4%BA%91%E8%84%9A%E6%9C%AC1%E5%8F%B7.js'

    var r=http.get(url).body.bytes()

    var scriptPath='./云脚本1号.js'

    files.writeBytes(scriptPath,r)

    展开全文
  • 上传到目录时,存储到oss上key取目录内文件或者目录列表的相对路径: 如:D:/demo/ 文件夹,文件夹内有,dir1/f1, dir2/f2, f3这几个文件,则存储到oss上key取dir1/f1,dir2/f2,f3 # -*- coding: utf-8 -*- # ...

     使用需要提前安装 pip install oss2 模块

     上传到目录时,存储到oss上key取目录内文件或者目录列表的相对路径:

      如:D:/demo/ 文件夹,文件夹内有,dir1/f1, dir2/f2, f3这几个文件,则存储到oss上key取dir1/f1,dir2/f2,f3

    # -*- coding: utf-8 -*-
    # Author: tom 
    # Description: ali oss tool for upload local file or dir
    # Date: 2020年8月24日
    # Usage: python alioss_uploader.py D:\workspace\web "\\resources\\|\\WEB-INF\\|\\wx\\|.*.jsp|.*.swf", first arg is upload path, second arg is exclude pattern
    
    import oss2
    import os
    import sys
    import re
    import logging
    # import asyncio
    from concurrent import futures
    
    console_handler = logging.StreamHandler()
    file_handler = logging.FileHandler(filename='./upload.log', mode='w')
    log_format = '%(asctime)s %(threadName)s-%(thread)d %(levelname)s: %(message)s'
    formatter = logging.Formatter(log_format)
    logging.basicConfig(filename='./upload.log', filemode='w', format=log_format
            , datefmt='%Y/%m/%d %H:%M:%S'
            , level=logging.INFO)
    console_handler.setFormatter(formatter)
    file_handler.setFormatter(formatter)
    log = logging.getLogger('alioss_uploader')
    log.setLevel(logging.INFO)
    log.addHandler(console_handler)
    log.addHandler(file_handler)
    
    auth = oss2.Auth('accessKey', 'secretKey')
    bucket = oss2.Bucket(auth, 'http://oss-xxx.aliyuncs.com', 'mybucket')
    # bucket = oss2.Bucket(auth, 'http://oss-xxx-internal.aliyuncs.com', 'mybucket')
    
    upload_path = None
    
    def upload_to_oss(file):
        with open(file, 'rb') as fileobj:
            try:
                upload_key = file.replace(upload_path, '').replace('\\', '/')[1:]
                log.info(f'Upload: {file}, key: {upload_key}')
                result = bucket.put_object(upload_key, fileobj)
                log.info(f'Upload result: {result.status}')
            except Exception as e:
                log.error(f'Upload Error: {e}')
            
    def recursive_upload(path, exclude_regx_pattern, pool):
        path = os.path.abspath(path)
        if exclude_regx_pattern is None or exclude_regx_pattern.search(path) is None:
            if os.path.isfile(path):
                #upload_to_oss(path)
                pool.submit(upload_to_oss, file=path)
            elif os.path.isdir(path):
                base_path = os.path.abspath(path)
                lsdir = os.listdir(path)
                pathnames = [os.path.join(base_path, filename) for filename in lsdir]
                for f in pathnames:
                    recursive_upload(f, exclude_regx_pattern, pool)
        else:
            log.info(f'Ignore file: {path}')
            
    if __name__ == '__main__':
        exclude_pattern = None
        if len(sys.argv) < 2:
            raise Exception('Argument upload path absent!')
            
        upload_path = os.path.abspath(str(sys.argv[1]))
        
        if len(sys.argv) >= 3 and sys.argv[2] is not None:
             exclude_pattern = sys.argv[2]
             exclude_pattern = re.compile(exclude_pattern)
             
        log.info(f'Oss upload local: {upload_path}, ignore pattern {exclude_pattern}');
        pool = futures.ThreadPoolExecutor(max_workers=16)
        recursive_upload(upload_path, exclude_pattern, pool)
        pool.shutdown()

     

    展开全文
  • 如何在一台本地可以上网的linux虚拟机中写一个脚本上传文件到腾讯?急需啊,谢谢大佬了,我想让一个文件1分钟上传一次到服务器,并覆盖之前的旧的
  • 增量上传脚本,此脚本是用来发布我个人博客 而编写的,因为工作中常用语言为 Java,而 Python 仅是副业,代码如有不当之处,敬请指出。 逻辑很简单,递归遍历本地目录,然后判断每个文件在 OSS 里是否存在,如果不...
  • Linux环境Shell脚本上传下载阿里OSS文件 背景 工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久,因此考虑备份方案,我们原本打算保存在nas上,然而由于各种原因与运维沟通下来建议...

    Linux环境Shell脚本上传下载阿里云OSS文件

    背景

    工作中由于我们项目生成的日志文件比较重要,而本地磁盘空间有限存储不了多久,因此考虑备份方案,我们原本打算保存在nas上,然而由于各种原因与运维沟通下来建议保存到oss上面。

    由于linux原生支持shell,而网上大多数方案基于python-sdk,因此我们为了减少依赖,考虑直接使用shell脚本上传OSS,网上找了些资料,参见:

    然而脚本试用下来有坑,特地记录一下:

    1. 字符比较提示异常

    字符比较

    上面截图字符比较会提示:

    ./oss.sh: 13: ./oss.sh: [get: not found
    ./oss.sh: 16: ./oss.sh: [put: not found
    ./oss.sh: 32: ./oss.sh: [put: not found
    

    应该改成上面的格式

    2.拼接url的时候把bucket也带进去了。 3.拼接签名不对,研究了很久发现不应该用“#!/bin/sh”,而需要使用“#!/bin/bash”,这是个大坑。。。

    修改版本

    下面给出修改版本,需要自取:

    #!/bin/bash
    
    host="oss-cn-shanghai.aliyuncs.com"
    bucket="bucket名"
    Id="AccessKey ID"
    Key="Access Key Secret"
    # 参数1,PUT:上传,GET:下载
    method=$1
    # 参数2,上传时为本地源文件路径,下载时为oss源文件路径
    source=$2
    # 参数3,上传时为OSS目标文件路径,下载时为本地目标文件路径
    dest=$3
    
    osshost=$bucket.$host
    
    # 校验method
    if test -z "$method"
    then
        method=GET
    fi
    
    if [ "${method}"x = "get"x ] || [ "${method}"x = "GET"x ]
    then
        method=GET
    elif [ "${method}"x = "put"x ] || [ "${method}"x = "PUT"x ]
    then
        method=PUT
    else
        method=GET
    fi
    
    #校验上传目标路径
    if test -z "$dest"
    then
        dest=$source
    fi
    
    echo "method:"$method
    echo "source:"$source
    echo "dest:"$dest
    
    #校验参数是否为空
    if test -z "$method" || test -z "$source" || test -z "$dest"
    then
        echo $0 put localfile objectname
        echo $0 get objectname localfile
        exit -1
    fi
    
    if [ "${method}"x = "PUT"x ]
    then
        resource="/${bucket}/${dest}"
        contentType=`file -ib ${source} |awk -F ";" '{print $1}'`
        dateValue="`TZ=GMT date +'%a, %d %b %Y %H:%M:%S GMT'`"
        stringToSign="${method}\n\n${contentType}\n${dateValue}\n${resource}"
        signature=`echo -en $stringToSign | openssl sha1 -hmac ${Key} -binary | base64`
        echo $stringToSign
        echo $signature
        url=http://${osshost}/${dest}
        echo "upload ${source} to ${url}"
        curl -i -q -X PUT -T "${source}" \
          -H "Host: ${osshost}" \
          -H "Date: ${dateValue}" \
          -H "Content-Type: ${contentType}" \
          -H "Authorization: OSS ${Id}:${signature}" \
          ${url}
    else
        resource="/${bucket}/${source}"
        contentType=""
        dateValue="`TZ=GMT date +'%a, %d %b %Y %H:%M:%S GMT'`"
        stringToSign="${method}\n\n${contentType}\n${dateValue}\n${resource}"
        signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${Key} -binary | base64`
        url=http://${osshost}/${source}
        echo "download ${url} to ${dest}"
        curl --create-dirs \
          -H "Host: ${osshost}" \
          -H "Date: ${dateValue}" \
          -H "Content-Type: ${contentType}" \
          -H "Authorization: OSS ${Id}:${signature}" \
          ${url} -o ${dest}
    fi
    
    

    执行命令:

    #上传
    $ ./oss.sh put a.gz c.gz
    
    #下载
    $ ./oss.sh get c.gz d.gz
    

    2018-11-21更新:

    今天看到阿里云提供ossutil64,详见:https://help.aliyun.com/document_detail/50452.html 有了这个方便很多。

    转载于:https://my.oschina.net/tree/blog/2396104

    展开全文
  • 如何使用Gradle脚本上传代码仓库 目录 上传本地代码仓库 上传JitPack 上传Jcenter 上传私有Maven仓库 上传本地代码仓库 使用localRepositoryUpload.gradle可以将代码打包上传至本地代码仓库,方便...

    如何使用Gradle脚本上传代码仓库


    目录


    上传本地代码仓库

    使用localRepositoryUpload.gradle可以将代码打包上传至本地代码仓库,方便调试。这样我们可以现在本地仓库进行调试,待确认没问题了,可以上传云端代码仓库。

    代码仓库配置

    1.在Module的根目录下新建gradle.properties文件,然后配置如下属性:

    GROUP=                            //组织名
    POM_ARTIFACT_ID=                  //项目名
    POM_VERSION=                      //版本名
    

    依赖的时候配置如下:

    compile 'GROUP:POM_ARTIFACT_ID:POM_VERSION'
    

    2.在Module的build.gradle中添加gradle脚本引用。

    apply from: "https://raw.githubusercontent.com/xuexiangjys/XUtil/master/localRepositoryUpload.gradle"
    

    执行上传任务

    执行上传任务有两种方式:

    • 执行命令:./gradlew uploadArchives

    • Gradle执行窗口: 点击Android Studio右侧的Gradle执行窗口,找到uploadArchives上传任务,点击执行。详情如下图:
      upload


    上传JitPack

    https://jitpack.io/ 是公网上一个非常方便的Maven仓库,基于GitHub进行代码仓库管理,无需复杂的配置,就可以非常方便地发布打包代码。

    使用JitPackUpload.gradle不仅可以将代码打包上传至JitPack代码仓库,还可以生成在线API文档。

    代码仓库配置

    1.先在项目根目录的 build.gradle 的 dependencies 添加插件依赖:

    buildscript {
        dependencies {
            ...
            classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
        }
    }
    

    2.在Module的build.gradle中添加gradle脚本引用。

    apply from: "https://raw.githubusercontent.com/xuexiangjys/XUtil/master/JitPackUpload.gradle"
    
    // 指定group,com.github.<用户名>,这里我默认填写的是我的github账号,请换成你自己的。
    group='com.github.xuexiangjys'
    

    【注意】:这里需要将group换成你的github账号

    执行上传任务

    需要注意的是,上传到JitPack一定要保证项目代码执行无误,否则将无法上传成功,这里你可以先通过上传本地代码仓库,确保无误后再进行上传任务。

    1.在将代码上传到JitPack之前,我们需要将其在GitHub上的项目打一个TAG,发布一个版本。因为JitPack是基于GitHub标签进行代码打包的。

    2.登录JitPack官网,在页面左侧的Repositories选择你需要上传的项目,然后点击"Get it"进行打包上传。详情如下图:
    jitpak

    在线文档

    1.API在线文档的路径一般如下:

    https://jitpack.io/com/github/User/Repo/Version/javadoc/
    
    • User: 你的GitHub用户名
    • Repo: 你的GitHub项目名
    • Version: 你项目发布的版本

    2.如果你的项目不止一个发布Module的话,API在线文档的路径会多出一个module名

    https://jitpack.io/com/github/User/Repo/Module/Version/javadoc/
    
    • module: 你的Module名

    上传Jcenter

    https://jcenter.bintray.com 是由JFrog公司提供的Bintray中的Java仓库。它是当前世界上最大的Java和Android开源软件构件仓库。

    与JitPack相比,他功能更多,也更复杂。当然上传也同样比较复杂,如果你是新手的话,我不推荐你使用这种。

    代码仓库配置

    1.先在项目根目录的 build.gradle 的 dependencies 添加插件依赖:

    buildscript {
        dependencies {
            ...
            classpath 'com.github.dcendents:android-maven-gradle-plugin:2.0'
            classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.8.0'
        }
    }
    

    2.在项目根目录的 local.properties 进行如下用户信息配置:

    #bintray
    bintray.user=               //bintray上的用户名
    bintray.apikey=             //bintray上的apikey,每一个用户唯一识别码
    
    #developer
    developer.id=               //开发者id,可随便填,只是描述信息
    developer.name=             //开发者姓名
    developer.email=            //开发者的联系邮箱
    

    【注意】:bintray.userbintray.apikey需要你在 https://bintray.com/ 上注册后才能获得。详情如下图:
    apikey

    3.在Module的根目录下新建gradle.properties文件,然后配置如下属性:

    下面我就以我的开源库XUtil举例说明。

    #project dependency info
    project.groupId=com.github.xuexiangjys          //组名
    project.artifactId=xutil-core                   //项目名
    project.version=1.0.0                           //版本名
    
    #project description
    project.name=XUtil                             //项目名称
    project.bintrayRepository=maven                //仓库名称
    project.packaging=aar                          //打包类型
    project.siteUrl=https://github.com/xuexiangjys/XUtil      //项目托管地址
    project.gitUrl=https://github.com/xuexiangjys/XUtil.git   //项目git地址
    
    #javadoc
    javadoc.name=XUtil
    
    

    【注意】:这里project.bintrayRepository需要你在 https://bintray.com/ 上创建用户账号后,手动新建一个代码仓库。它是你新建的代码仓库的名称。详情如下图:
    新建代码仓库

    4.在Module的build.gradle中添加gradle脚本引用。

    apply from: https://raw.githubusercontent.com/xuexiangjys/XUtil/master/bintrayUpload.gradle
    

    执行上传任务

    执行上传任务有两种方式:

    • 先后执行命令:./gradlew install./gradlew bintrayUpload

    • Gradle执行窗口: 点击Android Studio右侧的Gradle执行窗口,找到bintrayUpload上传任务,点击执行。详情如下图:
      上传任务

    上传任务完成后,可登录 https://bintray.com/ 到你上传的仓库里看项目是否存在,如果存在则点击进入项目主页查看是否有你刚才上传的版本信息,如果有则上传成功,否则上传失败。详情如下图:
    上传成功的样子

    提交Jcenter

    上传完毕后,并不代表你已经完成任务了。最后,你还需要点击项目页面右下角的"Add to JCenter",填写提交信息后,等待JCenter审核通过后才算完成上传Jcenter。

    审核大概需要几个小时,这个比较蛋疼,但也没办法。


    上传私有云Maven仓库

    当我们对代码的保密性比较强时,我们可能会自己搭建一个私有的Maven仓库,搭建的详细步骤可点击查看

    代码仓库配置

    1.在Module的根目录下新建gradle.properties文件,然后配置如下属性:

    #上传构件的信息
    GROUP=                            //组织名
    ARTIFACT_ID=                      //项目名
    VERSION_NAME=                     //版本名
    
    #上传的目标仓库地址
    SNAPSHOT_REPOSITORY_URL=
    RELEASE_REPOSITORY_URL=
    
    #Nexus 的私服的用户名称和密码
    NEXUS_USERNAME=
    NEXUS_PASSWORD=
    

    如果你发布的是snapshot版本,那么你需要在VERSION_NAME中包含SNAPSHOT, 例如"1.0.0-SNAPSHOT"。版本名不带SNAPSHOT的默认都是release版本。

    2.在Module的build.gradle中添加gradle脚本引用。

    apply from: "https://raw.githubusercontent.com/xuexiangjys/XUtil/master/upload_nexus.gradle"
    

    执行上传任务

    执行上传任务有两种方式:

    • 执行命令:./gradlew uploadArchives

    • Gradle执行窗口: 点击Android Studio右侧的Gradle执行窗口,找到uploadArchives上传任务,点击执行。详情如下图:
      上传任务

    联系方式


    这里写图片描述

    微信公众号

    在这里插入图片描述

    向我提问

    打开微信扫一扫,向我提问:
    这里写图片描述

    展开全文
  • supload, 在OpenStack上,用于将文件上传存储的Bash脚本 什么是 supload?它是基于 OpenStack Swift API的上传文件到存储的简单脚本。特性递归上传通过MD5散列检查文件只上传修改过的文件过期文件排除文件与 ...
  • 需求:将一个硬盘中的3000+个数据文件上传到odps上 1、安装odps客户端并进行相关的配置 配置文件在odpsclient/conf/odps_config.ini project_name= access_id= access_key= end_point= tunnel_endpoint...
  • 使用Python脚本将文件上传到Google云端硬盘 安装Windows / Python3.5: 证书 要获取凭据并激活Drive API,请执行以下详细步骤: : 下载“ client_secret_XXXXXXXXXXX.json”文件后,将其重命名为“ client_secret....
  • 在本地虚拟机可以联网的,上传本地文件到腾讯服务器,求一个shell脚本。。。谢谢大神,急。
  • java轻量级后端应用服务器从零开始一步步搭建到上线运行(二) 服务器代码 打包jar上传云服务器,脚本启动准备一, bat脚本批处理 打包服务器代码 jar二,服务器运行java程序环境搭建三,上传本地文件到服务器四...
  • 阿里物联网云端开发之脚本解析

    千次阅读 2019-02-26 19:14:22
    一、注册阿里账号登录物联网平台...这里困扰了我好多天,设备端上传得报文(01034042140000)是以字符串的形式传过来的,脚本解析接收的是十六进制数据,因此将报文(01034042140000)转变成了对应的十六进制数(3...
  • 学一哈写脚本之私有docker自动push镜像脚本 在私有云中,需要把镜像包,先上传到本地镜像,再发布到镜像仓库,以便其他主机下载使用。本地镜像改好名字和标签,接下来就是镜像的上传了,不料有些镜像比较大,难道...
  • Auto.js使用JavaScript作为脚本语言,目前使用Rhino 1.7.7.2作为脚本引擎,支持ES5与部分ES6特性。 推荐教程 Auto.js Pro安卓全分辨率免ROOT引流脚本开发视频教程(HD超清1080p) 开发文档 Auto.js Pro开发...
  • apps-script-multi-file-upload Apps脚本,使匿名用户可以将多个文件上传到Google云端硬盘。
  • 阿里OSS对象存储提供的 linux 客户端不方便在没有界面的linux环境下使用, 我写了一个python脚本,方便大家在服务器上方便的从oss上下载文件,朝oss上传文件。
  • 今天来介绍一下Jmeter的Java自定义脚本功能和在项目中的实际例子,因为是实际项目,所以有的接口不可避免的屏蔽掉,但是不影响整体阅读的 :) 背景知识: 在实际写之前,我们需要有jmeter自定义脚本的大概步骤,...
  • 列举阿里oss空间里面的所有文件 显示所有文件和上传产生的碎片管理(Multipart)分块文件UploadID ./ossutil ls oss://test -a 复制代码 结果 LastModifiedTime Size(B) StorageClass ETAG Object...
  • 按键精灵云端无法上传和下载和小精灵无法打包的解决办法 按键精灵手机助手云端无法上传和下载,云端同步网络错误和小精灵无法打包的解决办法
  • 最近两天忙着解决本地win上FTPClient能上传文件到linux服务器,但是发布到linux系统后上传失败:这里做分享一下 win上传成功 ...阿里FTP开启被动模式  vi /etc/vsftpd/vsftpd.conf  pasv_enable=YES p
  • 部署阿里ECS服务器运行python脚本

    千次阅读 2019-08-28 23:12:45
    1. 购买阿里ECS服务器(选HK) 2. ssh root@ip 登入 3. 安装anaconda虚拟环境 4. git上传项目 5. 运行python脚本
  • 工程主要实现本地将本地的识别图上传到EasyAR 图库进行云端识别。使用Http协议上传。工程里面包含相关的脚本和场景,亲测可用。
  • 在任务管理器里定时重复执行(比如5分钟重复一次),就能自动发现管家停止上传(这个脚本无法区分上传和下载,因此上传的同时不要下载),重启管家。在没有上传任务的时候,最好停掉这种定时任务,否则会导致...
  • linux系统本地备份策略,并利用百度实现云端备份。
  • curl https://get.docker.com/ | sudo sh 二、配置阿里镜像加速器 登陆阿里获取相应系统的镜像加速器代码 https://cr.console.aliyun.com/cn-beijing/instances/mirrors 注意:最后一行指令需要手动输入
  • 买的京东的服务器,但是centos服务器上npm install之后打包总是报错(本地正常),于是折腾了一个脚本换成本地打包上传到服务器了 deploy.sh脚本内容 #!/usr/bin/bash expect -f # 确保脚本抛出遇到的错误 set -e #...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 33,248
精华内容 13,299
关键字:

云脚本上传