微云API-申请文件上传

合集下载

将文件传到虚拟机的方法

将文件传到虚拟机的方法

将文件传到虚拟机的方法1. 使用共享文件夹:在虚拟机设置中将主机和虚拟机之间的文件夹设置为共享文件夹,然后在虚拟机中访问共享文件夹来传输文件。

2. 通过网络共享:在主机和虚拟机之间设置网络共享,可以通过网络传输文件。

3. 使用FTP服务:在虚拟机中安装FTP服务器,然后通过FTP客户端在主机上上传文件到虚拟机。

4. 通过云存储:将文件上传到云存储服务(如Google Drive、Dropbox等),然后在虚拟机中下载文件。

5. 使用远程桌面服务:通过远程桌面协议,在虚拟机中访问主机或者其他设备上的文件,并将文件传输到虚拟机中。

6. 利用虚拟机软件的文件传输功能:许多虚拟机软件(如VMware、VirtualBox等)提供了直接的文件传输功能,可以通过软件界面直接将文件传输到虚拟机中。

7. 使用虚拟机中的浏览器:通过虚拟机中的浏览器,可以直接下载文件到虚拟机中。

8. 通过邮件附件:将文件作为附件发送到虚拟机的邮件账户上,然后在虚拟机中下载附件。

9. 使用外部存储设备:将文件存储在外部设备(如U盘、移动硬盘等)上,然后在虚拟机中连接外部设备来传输文件。

10. 通过虚拟机中的云存储服务:一些云存储服务提供了虚拟机上的应用,可以直接通过这些应用来传输文件。

11. 使用剪贴板功能:一些虚拟机软件提供了剪贴板共享功能,可以通过复制和粘贴来传输文件。

12. 利用虚拟机的命令行工具:在虚拟机中使用命令行工具(如scp、rsync等)来通过网络传输文件。

13. 通过虚拟机中的Web服务器:在虚拟机中搭建Web服务器,然后在主机上通过浏览器上传文件到虚拟机。

14. 利用虚拟机的虚拟光驱:在虚拟机中挂载虚拟光盘,然后在主机中将文件写入虚拟光盘,最后在虚拟机中读取文件。

15. 使用远程协作软件:使用远程协作软件(如TeamViewer、AnyDesk等)实现远程控制虚拟机,并通过文件传输功能传输文件。

16. 云同步服务:利用云同步服务(如OneDrive、iCloud等)将文件上传到云端,然后在虚拟机中同步文件。

文件上传的几种方法

文件上传的几种方法

⽂件上传的⼏种⽅法当我们想把⽂件上传到web服务器上时,通常有如下⼏种⽅法:⽅法1、html(form)+nginx(⽂件上传模块)+php:这种⽅式最复杂。

⼀般不⽤。

实现过程说明如下:步骤⼀:form中,action=“/upload”. 指定⼀个⽬录,⽽不是⼀个⽂件。

method都是POST.步骤⼆:在nginx中,安装⽂件上传模块进⾏编译安装。

然后配置⽂件中,对/upload访问⽬录进⾏配置。

指定相关参数。

并指定后端处理⽂件上传的php⽂件。

经过nginx转⼿,后端php获取的参数就是nginx传递的,不是前端form过来的。

步骤三:后端php⽂件对传递过来的⽂件信息进⾏处理。

需要配置php.ini,允许上传⽂件。

以上实现的⽅法,在之前的html备份⽂件中存在。

可以找到(html201908221746)。

nginx的备份⽂件:nginx.conf201908242138。

⽅法2、html(form)+nginx+php:这种⽅式常见,配置⽐较简单。

步骤⼀:form中,action=“/test.php”. 指定后端php⽂件,method都是POST.步骤⼆:nginx只做为web服务存在步骤三:php.ini中启⽤⽂件上传,指定⽂件临时存储路径等等。

步骤四:php⽂件处理前端传递过来的上传⽂件。

⽐如:html:<form enctype="multipart/form-data" action="test.php" method="post">选择⽂件:<input type="file" name="file" > <br><input type="submit" value="上传">php:$uploaddir = '/tmp/test/' ;$uploadfile = $uploaddir.basename ( $_FILES [ 'file' ][ 'name' ]);if ( move_uploaded_file ( $_FILES [ 'file' ][ 'tmp_name' ], $uploadfile )) {echo "File is valid, and was successfully uploaded.\n" ;} else {echo "Possible file upload attack!\n" ;}echo 'Here is some more debugging info:' ;注意:curl的file关键字和php中的$_FILES [ 'file' ][ 'tmp_name' ]中的file关键字对应。

alamofire详解

alamofire详解

Alamofire详解什么是AlamofireAlamofire是一个基于Swift语言开发的优秀网络请求框架,它简化了iOS、macOS、watchOS和tvOS开发者进行网络请求的过程。

Alamofire建立在URLSession之上,提供了更简洁、高效和安全的方法来处理网络请求。

无论是发送HTTP请求、处理响应数据还是对错误进行处理,Alamofire都提供了强大而灵活的功能。

为什么选择AlamofireAlamofire相对于其他网络请求框架有以下几个优点:1.简洁而直观的API Alamofire的API设计非常清晰和直观,使开发者能够更容易理解和使用。

它采用了链式编程风格,使代码更加简洁和可读性更高。

2.支持异步和同步请求 Alamofire支持异步和同步请求,可以根据实际需求选择适合的方式。

异步请求可以在后台线程执行,避免阻塞主线程,提升应用的响应速度。

3.集成了丰富的功能 Alamofire提供了大量的功能和扩展,如自动解析JSON、文件上传和下载、网络状态监测等。

这些功能都是以易于使用和高度可定制的方式提供的。

4.良好的安全性 Alamofire在网络请求中提供了很多安全性的特性,如支持TLS证书和公钥校验、请求重试和重定向控制等,能够有效地保护应用的网络通信。

5.活跃的开发社区 Alamofire是一个非常活跃的开源项目,拥有庞大的开发者社区和更新频繁的版本迭代。

开发者可以从社区中获取到丰富的资源、解决方案和示例代码。

使用Alamofire进行网络请求使用Alamofire进行网络请求非常简单。

下面是一个基本的GET请求的示例:import AlamofireAF.request("").responseJSON { response inswitch response.result {case .success(let value):print("请求成功:\(value)")case .failure(let error):print("请求失败:\(error)")}}通过AF.request方法创建一个网络请求,并通过responseJSON方法指定了请求成功和失败时的处理回调。

微云API-我的文件下载地址

微云API-我的文件下载地址

1. 接口说明获得文件下载的地址。

文件下载的过程分成两个步骤:1) 获取文件下载的地址。

2) 通过获取到的文件下载地址,拼装最终URL,用GET方式下载。

1.1 URLOAuth2.0协议:https:///weiyun/download_fileOAuth1.0协议:/weiyun/download_file1.2 格式JSON1.3 HTTP请求方式GET1.4 输入参数说明各个参数请进行URL 编码,编码时请遵守RFC 1738a) 通用参数OAuth2.0协议必须传入的通用参数,详见这里OAuth1.0协议必须传入的通用参数,详见这里b) 私有参数appid: 第三方接入IDfile_id: 待下载的文件ID(68字节长度的字符串)1.5 请求示例以OAuth2.0协议为例(敏感信息都用*号进行了处理,实际请求中需要替换成真实的值):https:///weiyun/get_file?access_token=*************&oauth_consumer_key=12345&openid=****************1.6 返回参数说明ret: 操作结果,参见“返回错误码具体含义”dl_encrypt_url: 加密的URLdl_cookie_name: 存储平台返回的cookie namedl_cookie_value: 存储平台返回的cookie valuedl_svr_port: 下载服务器端口dl_svr_host: 下载服务器地址或者域名1.7 返回码说明0: 正确返回1013: 存储平台系统繁忙1014: 业务内部错误1015: 在存储平台创建用户失败1016: 存储平台不存在该用户1019: 目录不存在1020: 文件不存在1021: 目录已经存在1022: 文件已经存在1023: 上传文件时,索引创建成功,上传地址获取失败,客户端需要发起续传1025: 访问bitmap失败1026: 父目录不存在1028: 目录或者文件数超过总限制1029: 单个文件大小超限1051: 当前目录下已经存在同名文件1052: 下载未完成的文件1053: 用户剩余空间不足1071: oidb 数据库访问失败1072: oidb 数据头部校验失败1076: 非法文件,文件在黑名单中20008: 接入服务内部错误20014: 该APPID不存在100001: 输入参数无效100002: 输入命令无效100005: 文件ID无效100009: 内部通讯错误100013: 初始化ptlogin失败100014: ptlogin验证失败100017: appid无效100018: 上传类型无效100019: 父目录无效1.8 正确返回示例JSON示例:1.9 错误返回示例2.0 文件的下载过程说明通过CGI从存储平台获取下载加密URL和COOKIE,然后拼装最终URL:http://<dl_svr_host >:< dl_svr_port >/ftn_handler/dl_encrypt_urldl_encrypt_url:加密的URLdl_cookie_name: 存储平台返回的cookie namedl_cookie_value: 存储平台返回的cookie valuedl_svr_port: 下载服务器端口dl_svr_host: 下载服务器地址或者域名,表示形式为文本COOKIE中附加上:dl_cookie_name=dl_cookie_value以HTTP GET方式进行下载,HTTP header具体如下:GET /ftn_handler/dl_encrypt_url/ HTTP/1.1Accept: */*Accept-Language: zh-CNUser-Agent: Mozilla/4.0Accept-Encoding: gzip, deflateHost: dl_svr_hostConnection: Keep-AliveCookie: dl_cookie_name=dl_cookie_valuePragma: no-cacheRANGE:bytes=startPos-endPos注:其中RANGE:bytes=startPos-endPos\r\n,startPos指开始下载的位置,endPos指下载的末尾,中间的“-”不是减号,而是至的意思,请务必注意。

JavaWeb文件上传腾讯COS云储存

JavaWeb文件上传腾讯COS云储存

JavaWeb⽂件上传腾讯COS云储存通过COS云储存可以实现百度⽹盘的功能!登⼊腾讯云控制台找到访问管理点击左边的秘钥访问先把SecretID 和 SecretKey 保存下来找到对象储存没有储存的可以试⽤或者购买相当便宜点击储存库的链接设置权限设置好了之前开始写代码我⽤的是Maven框架在pom.xml下导⼊包<dependency><groupId>com.qcloud</groupId><artifactId>cos_api</artifactId><version>5.6.38</version></dependency><dependency><groupId>commons-fileupload</groupId><artifactId>commons-fileupload</artifactId><version>1.3.2</version></dependency><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>1.7.25</version></dependency><dependency><groupId>log4j</groupId><artifactId>log4j</artifactId><version>1.2.17</version></dependency>写配置⽂件 log4j.properties (可写可不写)log4j.rootLogger=debug, stdout, Rlog4j.appender.stdout=org.apache.log4j.ConsoleAppenderyout=org.apache.log4j.PatternLayout# Pattern to output the caller's file name and line number.yout.ConversionPattern=%5p [%t] (%F:%L) - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File=example.loglog4j.appender.R.MaxFileSize=100KB# Keep one backup filelog4j.appender.R.MaxBackupIndex=5yout=org.apache.log4j.PatternLayoutyout.ConversionPattern=%p %t %c - %m%n⽹页界⾯ src="图⽚预览链接"<%--Created by IntelliJ IDEA.User: 羡羡Date: 2021/7/3Time: 16:03To change this template use File | Settings | File Templates.--%><%@ page contentType="text/html;charset=UTF-8" language="java" %><html><head><title>Title</title></head><body><h1>⽂件上传到COS云储存</h1><form action="FileuploadServlet" method="post" enctype="multipart/form-data"><input type="file" name="fname"/><button type="submit">上传</button></form><img src="图⽚预览链接${filna}" alt="图⽚"/><a href="CosDelServlet?key=${filna}">删除</a><a href="CosdowServlet?key=${filna}">下载</a></body></html>⽂件上传Servletpackage com.it;import com.qcloud.cos.model.PutObjectRequest;import com.qcloud.cos.model.PutObjectResult;import mons.fileupload.FileItem;import mons.fileupload.FileUploadException;import mons.fileupload.disk.DiskFileItemFactory;import mons.fileupload.servlet.ServletFileUpload;import sun.corba.Bridge;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.List;/*** @author羡羡*/@WebServlet("/FileuploadServlet")public class FileuploadServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //⼯⼚DiskFileItemFactory factory=new DiskFileItemFactory();//Servlet ⽂件上传ServletFileUpload upload=new ServletFileUpload(factory);//⽂件名乱码upload.setHeaderEncoding("UTF-8");try {List<FileItem> list=upload.parseRequest(request);for(FileItem fi:list){//判断是否⽂件和⽂字if(fi.isFormField()){System.out.println("⽂件名:"+fi.getFieldName()+" "+fi.getString("UTF-8"));}else{long ti=System.currentTimeMillis();int wz=fi.getName().lastIndexOf(".");String filna=fi.getName().substring(wz+1);System.out.println("后缀名:"+filna);//图⽚名字设置时间戳String pna=ti+"."+filna;System.out.println("图⽚名:"+pna);InputStream in=fi.getInputStream();CosFileupload.upfile(in,pna);request.setAttribute("filna",pna);request.getRequestDispatcher("index.jsp").forward(request,response);}}} catch (FileUploadException e) {e.printStackTrace();}}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response);}}⽂件储存⼯具类package com.it;import com.fasterxml.jackson.databind.ObjectMapper;import com.qcloud.cos.COSClient;import com.qcloud.cos.ClientConfig;import com.qcloud.cos.auth.BasicCOSCredentials;import com.qcloud.cos.auth.COSCredentials;import com.qcloud.cos.model.GetObjectRequest;import com.qcloud.cos.model.ObjectMetadata;import com.qcloud.cos.model.PutObjectRequest;import com.qcloud.cos.region.Region;import java.io.File;import java.io.InputStream;/*** 腾讯COS云储存* @author羡羡*/public class CosFileupload {/*** SecretId 腾讯授权ID*/public static String SECRET_ID="填写⾃⼰的授权ID";/*** SECRET_KEY 腾讯授权秘钥*/public static String SECRET_KEY="填写⾃⼰的授权秘钥";/*** BUCKETNAME 储存库的名字*/public static String BUCKETNAME="储存库名字";/*** REGIONID 储存库的区域编号 ap-guangzhou :地区⼴州储存库*/public static String REGIONID="储存库地区";/*** 初始化配置信息* @return*/public static COSClient Initialize(){/*** 初始化⽤户⾝份信息(secretId, secretKey)*/COSCredentials cred = new BasicCOSCredentials(SECRET_ID, SECRET_KEY);/*** 设置bucket的区域 http⽅式*/ClientConfig clientConfig = new ClientConfig(new Region(REGIONID));/*** ⽣成cos客户端*/COSClient cosClient = new COSClient(cred, clientConfig);return cosClient;}/***⽂件上传* @param Inputstream 传⽂件流* @param key 为⽂件名需要唯⼀*/public static void upfile(InputStream Inputstream, String key){/*** 得到初始化的对象*/COSClient cosin=CosFileupload.Initialize();ObjectMetadata metadata=new ObjectMetadata();PutObjectRequest request=new PutObjectRequest(BUCKETNAME,key,Inputstream,metadata);cosin.putObject(request);cosin.shutdown();}/**** 下载⽂件* @param file 下载的路径* @param key ⽂件名*/public static void downloadfile(File file,String key){/*** 指定下载的路径 + ⽂件名称*/File dowfile=new File(file+"\\"+key);GetObjectRequest getobjrequest=new GetObjectRequest(BUCKETNAME,key);COSClient cosdowfile=CosFileupload.Initialize();cosdowfile.getObject(getobjrequest,dowfile);cosdowfile.shutdown();}/*** 删除⽂件* @param key ⽂件名*/public static void delfile(String key){COSClient cosdelfile=CosFileupload.Initialize();cosdelfile.deleteObject(BUCKETNAME,key);cosdelfile.shutdown();}}下载⽂件servletpackage com.it;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.File;import java.io.IOException;import java.io.PrintWriter;/*** @author羡羡*/@WebServlet("/CosdowServlet")public class CosdowServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response);}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //⽂件名String key=request.getParameter("key");//上传的路径File fil=new File("C:\\Users\\羡羡\\Desktop");CosFileupload.downloadfile(fil,key);PrintWriter out = response.getWriter();out.print("<script>alert('下载成功!');location.href='index.jsp'</script>");}}删除⽂件servletpackage com.it;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import java.io.IOException;/*** @author羡羡*/@WebServlet("/CosDelServlet")public class CosDelServlet extends HttpServlet {@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doGet(request, response);}@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //删除//得到⽂件名String na=request.getParameter("key");CosFileupload.delfile(na);response.sendRedirect("index.jsp");}}查看预览链接可以当图⽚标签的显⽰效果:腾讯云控制台上传效果。

VNNOX 云发布服务 快速入门.pdf_1694331617.4266381说明书

VNNOX 云发布服务 快速入门.pdf_1694331617.4266381说明书

VNNOX云发布服务快速入门产品版本:V7.5.0文档编号:NS170000247版权所有© 西安诺瓦电子科技有限公司2018。

保留一切权利。

非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。

商标声明是诺瓦科技的注册商标。

声明欢迎您选用西安诺瓦电子科技有限公司(以下简称诺瓦科技)的产品,如果本文档为您了解和使用产品带来帮助和便利,我们深感欣慰。

我们在编写文档时力求精确可靠,随时可能对内容进行修改或变更,恕不另行通知。

如果您在使用中遇到任何问题,或者有好的建议,请按照文档提供的联系方式联系我们。

对您在使用中遇到的问题,我们会尽力给予支持,对您提出的建议,我们衷心感谢并会尽快评估采纳。

目录目录 (ii)1 关于本文 (1)2 安装所需软件 (3)2.1 安装VNNOX Player (3)2.2 安装ViPlex (3)2.2.1 安装ViPlex Handy(Android和iOS版) (3)2.2.2 安装ViPlex Express(Windows版) (4)3 注册与登录VNNOX (5)3.1 注册 (5)3.2 登录 (5)4 通过简易版发布节目 (7)4.1 设置播放器认证信息 (7)4.2 新建播放器 (7)4.2.1 通过VNNOX Player新建 (8)4.2.2 通过ViPlex新建 (9)4.3 添加媒体 (11)4.4 新建节目 (12)4.5 发布节目 (14)4.6 (可选)其他操作 (14)4.6.1 授权播放器 (14)4.6.2 升级终端播放器 (14)4.6.3 远程实时控制 (15)4.6.4 对时 (16)4.6.5 查看远程控制日志 (16)5 通过专业版发布节目 (17)5.1 编辑节目 (17)5.1.1 添加媒体 (17)5.1.2 新建清单 (20)5.1.3 新建节目 (21)5.2 新建播放器 (24)5.3 设置播放器认证信息 (25)5.4 绑定播放器 (25)5.4.1 通过VNNOX Player绑定 (25)5.4.2 通过ViPlex绑定 (26)5.5 发布节目 (29)5.6 (可选)其他操作 (29)1 关于本文VNNOX是诺瓦科技推出的安全的云发布服务,实现LED显示屏远程内容管理和远程终端控制。

pikachu--文件上传

pikachu--文件上传

pikachu--⽂件上传⽂件上传很多⽹站注册的时候需要上传头像、上传附件等等。

当⽤户点击上传按钮后,后台会对上传的⽂件进⾏判断⽐如是否是指定的类型、后缀名、⼤⼩等等,然后将其按照设计的格式进⾏重命名后存储在指定的⽬录。

如果说后台对上传的⽂件没有进⾏任何的安全判断或者判断条件不够严谨,则攻击着可能会上传⼀些恶意的⽂件,⽐如⼀句话⽊马,从⽽来控制整个web后台。

⽂件上传漏洞测试流程:1. 对⽂件上传的地⽅按照要求上传⽂件,查看返回结果(路径,提⽰等)2. 尝试上传不同类型的“恶意⽂件”,⽐如xx.php⽂件,分析结果3. 查看html源码,看是否通过js在前端做了上传限制,可以绕过4. 尝试使⽤不同⽅式进⾏绕过:⿊名单绕过/MIME类型绕过/⽬录0x00截断绕过等5. 猜测或者结合其他漏洞(⽐如敏感信息泄露等)得到⽊马路径,连接测试$_FILES()函数通过使⽤PHP的全局数组$_FILES,可以从客户计算机向远程服务器上传⽂件第⼀个参数是表单的input name,第⼆个下标可以是”name”,”type”,”size”,”tmp_name”,”error”$_FILES[“file”][“name”]名称、类型、⼤⼩、存储在服务器的⽂件临时副本名称、由⽂件上传导致的错误代码⽂件上传漏洞防范措施:1.不要在前端使⽤js实施上传限制策略2.通过服务端对上传⽂件进⾏限制1>进⾏多条件组合检查:⽐如⽂件的⼤⼩,路径,扩展名,⽂件类型,⽂件完整性2>对上传的⽂件在服务器上存储时进⾏重命名(制定合理的命名规则)3>对服务器端上传⽂件的⽬录进⾏权限控制(⽐如:只读),限制执⾏权限带来的危害回到pikachu客户端check板块我们上传⼀句话⽊马 a.php⽂件显⽰我们打开web控制台修改代码改为onchange=”” 对这个不做限定⽂件上传成功我们接着访问这个⽂件利⽤⼀句话⽊马⾥的参数进⾏相应的操作得到想要的信息MIME type (服务端check)MIME(Multipurpose Internet Mail Extensions)多⽤途互联⽹邮件扩展类型。

如何快速上传大文件到云存储(二)

如何快速上传大文件到云存储(二)

如何快速上传大文件到云存储随着云存储的普及和快速发展,越来越多的人开始依赖于云存储来存储和管理自己的大文件,如照片、视频、音乐等。

然而,对于那些拥有大文件的用户来说,上传这些文件可能会变得相当繁琐和耗时。

因此,有必要了解一些快速上传大文件到云存储的技巧和方法。

1. 选择适合的云存储服务首先,选择合适的云存储服务非常重要。

不同的云存储服务提供商具有不同的上传限制和速度。

因此,在选择云存储服务时,建议考虑以下因素:- 上传速度:了解不同存储服务的上传速度,以便选择适合自己需求的服务。

- 文件大小限制:查看不同服务对单个文件的大小限制,确保能够上传大文件。

- 可用性和稳定性:评估不同服务的可用性和稳定性,选择一个经过验证的服务,以确保文件的安全性和可靠性。

2. 使用专用的文件上传工具大文件的上传可能因为网络限制而变得缓慢和不稳定。

为了解决这个问题,可以考虑使用专门的文件上传工具。

这些工具通常具有多线程上传和断点续传功能,可以显著提高上传速度和稳定性。

- 多线程上传:这种方法允许同时使用多个线程上传文件的不同部分,加快上传速度。

- 断点续传:断点续传技术能够在上传过程中发生中断时,从中断处继续上传,而不需要重新上传整个文件。

这种方法可以节省时间和网络带宽。

3. 利用压缩和分卷压缩功能大文件可能会占用大量的存储空间,并且会消耗更多的上传时间。

为了解决这个问题,可以尝试使用文件压缩和分卷压缩功能。

- 文件压缩:将大文件压缩成较小的压缩文件,这样不仅可以减小文件的大小,还可以加快上传速度。

- 分卷压缩:将大文件分成多个固定大小的卷,然后压缩并分别上传这些卷。

这种方法可以减少上传的数据量,提高上传速度和稳定性。

4. 选择合适的上传时间上传大文件可能会占用大量的网络带宽,从而影响其他网络任务的执行。

为了避免这种情况,建议选择非高峰期或闲时进行上传。

- 非高峰期:选择在凌晨或其他人们通常不使用互联网的时间段进行上传,可以避免网络拥堵和带宽限制。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1. 接口说明
文件上传申请,成功会返回实际上传的地址。

根据申请上传返回的地址,组织数据上传。

1.1 URL
OAuth2.0协议:https:///weiyun/upload_file
OAuth1.0协议:/weiyun/upload_file
1.2 格式
JSON
1.3 HTTP请求方式
GET
1.4 输入参数说明
各个参数请进行URL编码,编码时请遵守RFC 1738
a) 通用参数
OAuth2.0协议必须传入的通用参数,详见这里
OAuth1.0协议必须传入的通用参数,详见这里
b) 私有参数
appid: 第三方接入ID
sha : 待上传文件对应的SHA1的值(使用SHA1算法)
md5 : 待上传文件对应的MD5值
size : 文件大小,单位为字节
name : 文件名,字符串(中文名称用UTF8格式编码,文件名规则跟windows系统一样,文件名中不能包括下列字符\ / : * ? ” < > | )
upload_type:上传类型,可选。

control:控件上传(默认),normal:普通http上传。

数据的上传方式一定要填写正确,不然不能正确上传,因为不同的上传方式,返回的上传服务器是不一样
1.5 请求示例
以OAuth2.0协议为例(敏感信息都用*号进行了处理,实际请求中需要替换成真实的值):
https:///weiyun/put?
access_token=*************&
oauth_consumer_key=12345&
openid=****************
1.6 返回参数说明
ret: 操作结果,参见“返回错误码具体含义”
file_id:待上传文件的文件ID(68字节长度的字符串)
sum:上传校验码,字符串(最大348字节)
port:上传服务器端口
host: 上传服务器地址或者域名
1.7 返回码说明
0: 正确返回
1013: 存储平台系统繁忙
1014: 业务内部错误
1015: 在存储平台创建用户失败
1016: 存储平台不存在该用户
1019: 目录不存在
1022: 文件已经存在
1023: 上传文件时,索引创建成功,上传地址获取失败,客户端需要发起续传
1025: 访问bitmap失败
1026: 父目录不存在
1028: 目录或者文件数超过总限制1029: 单个文件大小超限
1051: 当前目录下已经存在同名文件1053: 用户剩余空间不足
1057: 续传时源文件已经发生改变1071: oidb 数据库访问失败1072: oidb 数据头部校验失败1076: 非法文件,文件在黑名单中1078: 用户不在白名单中
20008: 接入服务内部错误20014: 该APPID不存在
20015: 认证key错误
30003: 缓冲区长度不够
100003: 文件的SHA值无效100004: 文件的MD5值无效100006: 内存溢出
100009: 内部通讯错误
100013: 初始化ptlogin失败100014: ptlogin验证失败100017: appid无效
100018: 上传类型无效
100019: 父目录无效
1.8 正确返回示例
JSON示例:
1.9 错误返回示例
2. 数据上传协议说明2.1 普通http上传
即文件内容。

上传由HTTP标准协议上传。

a) POST
格式:
HTTP头部字段描述
起始TAG部分字段描述
结束TAG部分字段描述
b) Get
GET /crossdomain.xml
填充示例描述
POST
/ftn_handler/?ver=12345&ukey=4bb9288183515aa6d2d2b101c7b9230e3d33e2df14474 0372a349768bc9538b386b24f84b6e538eef9854628aaa175fa5a3169600d17b349327c226428d930d1eec4685123 593bf6ab3e1c5b4147f364d494e965ed4f1c989e8a02877baa01dd4c62ade3a94daa77bc3f926a87285e7a1586ffd6 72f4bcc2d7019f893b6e5d70d5cbacfdd373b5a32ec5224dc5ec5fc03d4bf093740e3fea8d9ca4c62becc0cb15927a0 562d6b3bbc6419b837f0b1b7f0c5fe2c804234a387a86b5e269eb63b37bd2a5fdafb4d18f0103df1632fba82689a18 304e9701041f5213b6b1ceb7f89beaa859bd2fc41573ea934cb00a591231969e09e7de7041254126997ac07fb07e0 75cbd848f15f95f1277d3a88f44defc105e98d539c3efffa135f8e2aac15ea6089cf73d8a6f2cbf46314698dfaa907&fil ekey=000000006be10f39d4bf46a59c3313a150406ec2& HTTP/1.1
Accept: text/*
Content-Type:multipart/form-data;boundary=------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
User-Agent: Shockwave Flash
Host:
Content-Length: 1049
Connection: Keep-Alive
Pragma: no-cache
Cookie:lv_irt_id=1f718c87244cb1986cb165b0af488940; ptisp=ctc ------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3 起始TAG(boundary)Content-Disposition: form-data; name="Filename"
test.txt
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="mode"
flashupload
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="uin"
346972813
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="resp_charset"
UTF8
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="appid"
2
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="sid"
4G2t6Io2uxVAMydp
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="t"
exs_ftn_uploadaction
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: application/octet-stream 以下为实际上传内容this is for test 此部分为实际上传的文件内容
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3 结束TAG
Content-Disposition: form-data; name="Upload"
Submit Query
------------ei4Ij5Ef1ae0ae0Ij5Ij5Ij5Ij5GI3--。

相关文档
最新文档