大文件如何传输

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大文件如何传输相关的知识,希望对你有一定的参考价值。

参考技术A 问题一:电脑怎么传输大于4G的文件 U盘必须先确定文件系统支持4G以上大文件,比如格式化成NTFS格式或者exFAT格式,否则像FAT32、FAT16的文件系统不支持4G以上文件。
插入U盘后右键查看属性可以看文件系统。
右键格式化可以格式化并更改文件系统(建议勾选快速格式化)

问题二:大文件如何传输到u盘 你先把U盘格式化为NTFS格式,以后就能传输大于4 G的文件了

问题三:qq里怎么传大的文件,而且要速度快的 QQ客户端有“发送微云文件”的功能,能很快地实现大文件的传送,几乎达到了秒传。
打开QQ聊天窗口,点击送文件按钮
在下拉菜单中选择发送微云文件
在微云中选择从本地上传的大文件,点击确定
1GB多的一部电影,秒传给对方了。

问题四:网上传送大的文件需要怎么传 网上传送大的文件,有不同的载体,如:上传到网页、上传到网盘、上传到邮箱等,以上传到QQ邮箱为例,具体方法是:
1、登录QQ。
2、点击邮箱标记,进入邮箱。
3、点击文件中转站,如下图:
4、在文件中转站中点上传,如下图:
5、上传到文件中转站的文件,可以保留一个月,在此间可以发送给任意一个邮箱。

问题五:如何快速把大文件传送到对方邮箱 首先 你要把文件压缩成ZIP或者RAR格式
其次 进入QQ邮箱 在左侧一栏的下方 有个“文件中转站”,然后上传你压缩好的文件。
最后 上传好了以后 发送到对方憨箱里 他就可以下载了。

问题六:大附件文件如何快速传输?如何快速传输大文件? 随着各类素材尺寸的增大,大家对邮件附件容量及上传速度等的要求也越来越高。然而,在邮件使用中常常遇到很多问题,例如公司邮箱对附件大小限制,无法发送大附件,或是很尴尬地无法接收客户发送的大附件;发送大附件速度很慢,严重影响办公效率;大量附件带来邮件数据的迅猛增长和后台压力,使IT成本不断增加。
值得一提的是,联想企业网盘可以帮忙解决以上遇到的各种问题,详情可以参阅box.lenovo/user/reg?C=BWD01联想企业网盘还可支持将收件箱附件自动转存至云端,以延长数据的保存时间。如此以来,用户可以随时访问发送箱和收件箱的所有附件,让邮件附件管理更加便捷。

问题七:我的一个超大文件怎么传给别人,先谢谢了! 20CN迷你FTP服务器
随着宽带上网的人越来越多,朋友之间的文件共享与交流成了一个问题,用QQ MSN之类的
传送吧,很不方便,速度也是一个问题,装个Server-U吧,似乎夸张了点。而且说不定
给你弄个漏洞出来,危害到你电脑的安全,这就不好了嘛。而这个20CN MINI FTPD 正好
满足你的要求。很小的个头,很绿色。有需要时打开,不需要的时候关闭,当然也可以
选择适当的目录,永久性的共享给你的朋友。把用户名和密码告诉你的朋友,他们就可以
随时来下载你分享给他们的东西了。
软件很容易使用,好像写个使用说明有点把你当 *** 了,但考虑到很多的初学者,还是说说
1. 设定端口 -- 一般为21,这是ftp的默认端口,当然你也可以设为其他的,这样可以
起到安全保密的作用,但你要告诉人家你的端口才行
2. 设定最大连接数 -- 这是可以同时连接进来的数量,最大可到999。
3. 设定用户名和密码 -- 连接上来的用户必须输入这个用户名和密码才可以登陆
4. 设定信息 -- 这个随你便,你要什么信息都可以写
5. 设定目录 -- 在这个目录下的所有子目录可被访问
6. 设定权限 -- 这个比较重要,事关你电脑的安全,请小心设置
下载:mumayi1.999kb/pic/2006-07-26/q5ykrobcyph6rzryca7x.rar
仅有33K,必须有公网IP

问题八:如何发送大文件,最好的方法是什么? 压缩打包以后发送
不知道你是用什么发送文件 是用QQ吗还是其他的
用邮件的话附件只有20兆的限制
如果用QQ发送文件 发送方和接受方用的是一个品牌的网线速度还可以
如果用的是不同品牌的网线速度是相当慢的!
希望能对你有帮助!

问题九:如何发送超大文件给好友 1、以“新管家版”登录邮箱后,点击“写信”页面下的“添加附件”。2、选择您待上传的附件(如您的附件超过50M,系统会自动提示以云附件形式上传),弹窗中直接点击“上传”即可。3、在云附件上传的弹窗中可以看到附件上传的进度情况,勾选需要发送的文件后点“确定”即可添加到邮件附件当中。

问题十:如何快速传大型文件给别人 这个问题很简单,把视频的后辍名改了。。就变成文件。文件的话一般只有几K。。传送过去以后再改回来。。就可以正常观看了。。。搐望采纳。。

Spring WebClient:如何将大字节 [] 流式传输到文件?

【中文标题】Spring WebClient:如何将大字节 [] 流式传输到文件?【英文标题】:Spring WebClient: How to stream large byte[] to file? 【发布时间】:2019-10-06 04:32:36 【问题描述】:

似乎 Spring RestTemplate 无法将响应直接流式传输到文件而不将其全部缓冲在内存中。使用较新的 Spring 5 WebClient 实现此目的的正确方法是什么?

WebClient client = WebClient.create("https://example.com");
client.get().uri(".../name", name).accept(MediaType.APPLICATION_OCTET_STREAM)
                    ....?

我看到人们使用RestTemplate 找到了解决此问题的一些解决方法/技巧,但我更感兴趣的是使用WebClient 以正确的方式解决问题。

使用RestTemplate 下载二进制数据的例子很多,但几乎都将byte[] 加载到内存中。

【问题讨论】:

谢谢,但这并没有说明如何使用 WebClient。 我不认为它回答了这个问题。如果您认为可以,请创建一个答案。 Spring WebFlux Webclient receiving an application/octet-stream file as a Mono的可能重复 @K.Nicholas - 你真的认为这是那个问题的重复吗?一方面,该问题没有提到直接流式传输到文件(没有将整个响应保存在内存中),这是我问题的重点;而且这个问题是使用 Kotlin,而不是 Java。 > 是的,你是对的,应该将其标记为离题。 @K.Nicholas 我不知道你为什么一直试图找到一种方法来破坏我的问题,但请随时查看***.com/help/on-topic 和行为准则。 【参考方案1】:

使用最近稳定的 Spring WebFlux(撰写时为 5.2.4.RELEASE):

final WebClient client = WebClient.create("https://example.com");
final Flux<DataBuffer> dataBufferFlux = client.get()
        .accept(MediaType.TEXT_HTML)
        .retrieve()
        .bodyToFlux(DataBuffer.class); // the magic happens here

final Path path = FileSystems.getDefault().getPath("target/example.html");
DataBufferUtils
        .write(dataBufferFlux, path, CREATE_NEW)
        .block(); // only block here if the rest of your code is synchronous

对我来说,不明显的部分是 bodyToFlux(DataBuffer.class),因为它目前在 Spring 文档的 generic section about streaming 中提到,在 WebClient 部分中没有直接引用它。

【讨论】:

DataBuffer 基本上看起来就像一个 ByteBuffer。我没有看到读写器之间发生任何协调,也没有任何方法对缓冲区设置大小限制。你怎么知道 DataBuffer 是响应式的(或多线程协调的)和大小有界的? 没关系,显然流会根据需要生成尽可能多的 DataBuffers,每个 DataBuffers 都包含一个响应数据块。不确定大小是如何确定的,可能在 Netty 配置中。每个 DataBuffer 在发送到 Flux 时都是完整的,因此不需要协调。【参考方案2】:

将正文存储到临时文件并使用

static <R> Mono<R> writeBodyToTempFileAndApply(
        final WebClient.ResponseSpec spec,
        final Function<? super Path, ? extends R> function) 
    return using(
            () -> createTempFile(null, null),
            t -> write(spec.bodyToFlux(DataBuffer.class), t)
                    .thenReturn(function.apply(t)),
            t -> 
                try 
                    deleteIfExists(t);
                 catch (final IOException ioe) 
                    throw new RuntimeException(ioe);
                
            
    );

管体和消耗

static <R> Mono<R> pipeBodyAndApply(
        final WebClient.ResponseSpec spec, final ExecutorService executor,
        final Function<? super ReadableByteChannel, ? extends R> function) 
    return using(
            Pipe::open,
            p -> 
                final Future<Disposable> future = executor.submit(
                        () -> write(spec.bodyToFlux(DataBuffer.class), p.sink())
                                .log()
                                .doFinally(s -> 
                                    try 
                                        p.sink().close();
                                        log.debug("p.sink closed");
                                     catch (final IOException ioe) 
                                        throw new RuntimeException(ioe);
                                    
                                )
                                .subscribe(DataBufferUtils.releaseConsumer())
                );
                return just(function.apply(p.source()))
                        .log()
                        .doFinally(s -> 
                            try 
                                final Disposable disposable = future.get();
                                assert disposable.isDisposed();
                             catch (InterruptedException | ExecutionException e) 
                                e.printStackTrace();
                            
                        );
            ,
            p -> 
                try 
                    p.source().close();
                    log.debug("p.source closed");
                 catch (final IOException ioe) 
                    throw new RuntimeException(ioe);
                
            
    );

【讨论】:

这个答案不是***.com/a/56096484/839733的重复吗? @AbhijitSarkar 是的。【参考方案3】:

我不确定您在当前使用 spring 时是否可以访问RestTemplate,但这个对我有用。


RestTemplate restTemplate // = ...;

RequestCallback requestCallback = request -> request.getHeaders()
        .setAccept(Arrays.asList(MediaType.APPLICATION_OCTET_STREAM, MediaType.ALL));

// Streams the response
ResponseExtractor<Void> responseExtractor = response -> 
    // Here I write the response to a file but do what you like
    Path path = Paths.get("http://some/path");
    Files.copy(response.getBody(), path);
    return null;
;
restTemplate.execute(URI.create("www.something.com"), HttpMethod.GET, requestCallback, responseExtractor);

【讨论】:

感谢您的回复。我看到代码与此处的代码相同:***.com/a/38664475/449652。但是,这不再适用于 Spring 5 或更高版本 - 请参阅此问题:github.com/spring-projects/spring-framework/issues/19448 原始发帖人说他想以正确的方式来做,Webclient 是非阻塞的。 RestTemplate 即将被弃用。【参考方案4】:

我无法测试以下代码是否有效地将webClient 有效负载的内容缓存在内存中。不过,我认为你应该从那里开始:

public Mono<Void> testWebClientStreaming() throws IOException 
    Flux<DataBuffer> stream = 
            webClient
                    .get().accept(MediaType.APPLICATION_OCTET_STREAM)
                    .retrieve()
            .bodyToFlux(DataBuffer.class);
    Path filePath = Paths.get("filename");
    AsynchronousFileChannel asynchronousFileChannel = AsynchronousFileChannel.open(filePath, WRITE);
    return DataBufferUtils.write(stream, asynchronousFileChannel)
            .doOnNext(DataBufferUtils.releaseConsumer())
            .doAfterTerminate(() -> 
                try 
                    asynchronousFileChannel.close();
                 catch (IOException ignored)  
            ).then();

【讨论】:

仅供参考,这里有一个新孩子。见DataBufferUtils#write(Publisher<DataBuffer>, Path, OpenOption...)

以上是关于大文件如何传输的主要内容,如果未能解决你的问题,请参考以下文章

如何分发大文件大文件传输解决方案

如何流式传输(大)日志文件?

如何传输大容量文件

如何分发大文件大文件传输解决方案-JS

如何分发大文件文件夹传输解决方案

Spring WebClient:如何将大字节 [] 流式传输到文件?