• 关于

    传不了文件

    的搜索结果

回答

回1楼徇云一五的帖子 分片传,我这边已经实现了。用每次传一片来,然后按百分比计算出进度。现在这边有个问题,怎么实现文件的断点续传和秒传。秒传 这边,我们去检测服务器是否存在这个文件,有人说用oss_head_object 这个接口来检测,但是只要文件不存在 就是UnkownError..    这个怎么检测。 续传:这边得不到已经上传一些分片文件的信息啊。 我的理解是 :传文件时检测 服务器是否存在该文件,存在直接给下载地址(秒传)。   不存在 检测是否上传了一部分,服务器返回偏移量(本地续传),请问对应的C 中的SDK 怎么实现

莫相离sky 2019-12-02 02:56:40 0 浏览量 回答数 0

问题

你好,flashFXP上传文件到100%了,但是文件传不上去

1806136913082079 2019-12-01 19:14:52 63 浏览量 回答数 3

回答

Re有很多图片文件已经打包在本地了,如何快速转移到oss呢? 哦,我可能没说明白,现在文件不在oss上,但是考虑转移到oss上去。 文件有有几十万甚至更多图片,都是打包成tar的,如果要解压之后慢慢传到oss上,就真的是“慢慢传”了,如果上传tar文件,虽然也慢,但是速度就快多了。 同样如果要从oss备份到本地,似乎也不能打包,只能一个一个文件的单独下载到本地了。 ------------------------- Re有很多图片文件已经打包在本地了,如何快速转移到oss呢? 谢谢楼上各位的建议。 文件目前不在ecs,如果上传到ecs,再解压,再传到oss,不如直接从现有服务器传到oss了。 根据以往经验,在局域网传输一个100G的文件很快,传输100G,200万个小文件就很慢了。 如果递归上传到oss时网络异常,传输中断的话,是不是要重新传输了?不了解这种方式,以前都是打包下载,上传,解压,压缩全部在服务器解决了。 ------------------------- Re有很多图片文件已经打包在本地了,如何快速转移到oss呢? 用ecs就没问题,一个个2G的文件 FTP 到服务器(FTP上传可以断点续传),然后解压。 oss嘛,现在先慢慢传。 现在用的oss客户端工具似乎传输失败的列表不会保存,重新打开就没有了,不能重新上传那些失败的文件。

freenow 2019-12-01 23:11:49 0 浏览量 回答数 0

阿里云爆款特惠专场,精选爆款产品低至0.95折!

爆款ECS云服务器8.1元/月起,云数据库低至1.5折,限时抢购!

回答

Re服务器的文件可以自动上传到OSS吗? 是啊为什么没有这么功能。七牛可以,这个功能应该很简单吧。 ------------------------- 回3楼deadbeef的帖子 七牛的镜像存储功能: 设置镜像存储,源站资源(文件/图片等)根据初次访问自动同步到七牛云存储,数据平滑迁移。 可使用绑定的自定义域名访问镜像存储的源站资源。格式:http://绑定域名/源站资源相对路径。 ------------------------- 回6楼drery的帖子 你搞反了,他不是有了OSS还要把文件传到自己的服务器,是没用OSS前,文件已经传到自己的服务器了。。。所以他才想自动把服务器上的文件传到OSS。很明显他不想传到自己的服务器了,想传也传不了了,已经满了。。。

supper勇 2019-12-02 01:19:54 0 浏览量 回答数 0

问题

免费虚拟机不支持伪静态?感觉像上锁,传上去都看不到

月下孤鹰 2019-12-01 21:48:07 3578 浏览量 回答数 1

回答

详细解答可以参考官方帮助文档当下载大文件时,如果网络不稳定或者程序崩溃了,则整个下载就失败了。用户 不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次 还是无法完成下载。 通过Bucket.DownloadFile接口来实现断点续传下载。它有以下参数: objectKey 要下载的Object名字 filePath 下载到本地文件的路径 partSize 下载分片大小,从1B到5GB,单位是Byte options 可选项,主要包括: Routines 指定分片下载的并发数,默认是1,及不使用并发下载 Checkpoint 指定下载是否开启断点续传,及checkpoint文件的路径。默认断点续传功能关闭,checkpoint文件的路径可以指定为空,如果不指定则默认为与本地文件同 目录下的file.cpt,其中file是本地文件的名字 下载时限定条件,请参看指定限定条件下载 其实现的原理是将要下载的Object分成若干个分片分别下载,最后所有分片都下 载成功后,完成整个文件的下载。在下载的过程中会记录当前下载的进度信息 (记录在checkpoint文件中)和已下载的分片,如果下载过程中某一分片下载失败,再次下 载时会从checkpoint文件中记录的点继续下载。这要求再次调用时要指定与上次 相同的checkpoint文件。下载完成后,checkpoint文件会被删除。 import "github.com/aliyun/aliyun-oss-go-sdk/oss" client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret") if err != nil { // HandleError(err) } bucket, err := client.Bucket("my-bucket") if err != nil { // HandleError(err) } err = bucket.DownloadFile("my-object", "LocalFile", 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) if err != nil { // HandleError(err) } 注意: SDK会将下载的中间状态信息记录在cp文件中,所以要确保用户对cpt文 件有写权限 cpt文件记录了下载的中间状态信息并自带了校验,用户不能去编辑它,如 果cpt文件损坏则重新下载文件 如果下载过程中待下载的Object发生了改变(ETag改变),或者part文件丢 失或被修改,则重新下载文件 提示: 指定断点续传checkpoint文件路径使用oss.Checkpoint(true, "your-cp-file.cp") 使用bucket.DownloadFile(objectKey, localFile, 100*1024),默认不使用分片并发下载、不启动断点续传

2019-12-01 23:14:49 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档当下载大文件时,如果网络不稳定或者程序崩溃了,则整个下载就失败了。用户 不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次 还是无法完成下载。 通过Bucket.DownloadFile接口来实现断点续传下载。它有以下参数: objectKey 要下载的Object名字 filePath 下载到本地文件的路径 partSize 下载分片大小,从1B到5GB,单位是Byte options 可选项,主要包括: Routines 指定分片下载的并发数,默认是1,及不使用并发下载 Checkpoint 指定下载是否开启断点续传,及checkpoint文件的路径。默认断点续传功能关闭,checkpoint文件的路径可以指定为空,如果不指定则默认为与本地文件同 目录下的file.cpt,其中file是本地文件的名字 下载时限定条件,请参看指定限定条件下载 其实现的原理是将要下载的Object分成若干个分片分别下载,最后所有分片都下 载成功后,完成整个文件的下载。在下载的过程中会记录当前下载的进度信息 (记录在checkpoint文件中)和已下载的分片,如果下载过程中某一分片下载失败,再次下 载时会从checkpoint文件中记录的点继续下载。这要求再次调用时要指定与上次 相同的checkpoint文件。下载完成后,checkpoint文件会被删除。 import "github.com/aliyun/aliyun-oss-go-sdk/oss" client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret") if err != nil { // HandleError(err) } bucket, err := client.Bucket("my-bucket") if err != nil { // HandleError(err) } err = bucket.DownloadFile("my-object", "LocalFile", 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) if err != nil { // HandleError(err) } 注意: SDK会将下载的中间状态信息记录在cp文件中,所以要确保用户对cpt文 件有写权限 cpt文件记录了下载的中间状态信息并自带了校验,用户不能去编辑它,如 果cpt文件损坏则重新下载文件 如果下载过程中待下载的Object发生了改变(ETag改变),或者part文件丢 失或被修改,则重新下载文件 提示: 指定断点续传checkpoint文件路径使用oss.Checkpoint(true, "your-cp-file.cp") 使用bucket.DownloadFile(objectKey, localFile, 100*1024),默认不使用分片并发下载、不启动断点续传

2019-12-01 23:14:48 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档当下载大文件时,如果网络不稳定或者程序崩溃了,则整个下载就失败了。用户 不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次 还是无法完成下载。 通过Bucket.DownloadFile接口来实现断点续传下载。它有以下参数: objectKey 要下载的Object名字 filePath 下载到本地文件的路径 partSize 下载分片大小,从1B到5GB,单位是Byte options 可选项,主要包括: Routines 指定分片下载的并发数,默认是1,及不使用并发下载 Checkpoint 指定下载是否开启断点续传,及checkpoint文件的路径。默认断点续传功能关闭,checkpoint文件的路径可以指定为空,如果不指定则默认为与本地文件同 目录下的file.cpt,其中file是本地文件的名字 下载时限定条件,请参看指定限定条件下载 其实现的原理是将要下载的Object分成若干个分片分别下载,最后所有分片都下 载成功后,完成整个文件的下载。在下载的过程中会记录当前下载的进度信息 (记录在checkpoint文件中)和已下载的分片,如果下载过程中某一分片下载失败,再次下 载时会从checkpoint文件中记录的点继续下载。这要求再次调用时要指定与上次 相同的checkpoint文件。下载完成后,checkpoint文件会被删除。 import "github.com/aliyun/aliyun-oss-go-sdk/oss" client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret") if err != nil { // HandleError(err) } bucket, err := client.Bucket("my-bucket") if err != nil { // HandleError(err) } err = bucket.DownloadFile("my-object", "LocalFile", 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) if err != nil { // HandleError(err) } 注意: SDK会将下载的中间状态信息记录在cp文件中,所以要确保用户对cpt文 件有写权限 cpt文件记录了下载的中间状态信息并自带了校验,用户不能去编辑它,如 果cpt文件损坏则重新下载文件 如果下载过程中待下载的Object发生了改变(ETag改变),或者part文件丢 失或被修改,则重新下载文件 提示: 指定断点续传checkpoint文件路径使用oss.Checkpoint(true, "your-cp-file.cp") 使用bucket.DownloadFile(objectKey, localFile, 100*1024),默认不使用分片并发下载、不启动断点续传

2019-12-01 23:14:48 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档当下载大文件时,如果网络不稳定或者程序崩溃了,则整个下载就失败了。用户 不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次 还是无法完成下载。 通过Bucket.DownloadFile接口来实现断点续传下载。它有以下参数: objectKey 要下载的Object名字 filePath 下载到本地文件的路径 partSize 下载分片大小,从1B到5GB,单位是Byte options 可选项,主要包括: Routines 指定分片下载的并发数,默认是1,及不使用并发下载 Checkpoint 指定下载是否开启断点续传,及checkpoint文件的路径。默认断点续传功能关闭,checkpoint文件的路径可以指定为空,如果不指定则默认为与本地文件同 目录下的file.cpt,其中file是本地文件的名字 下载时限定条件,请参看指定限定条件下载 其实现的原理是将要下载的Object分成若干个分片分别下载,最后所有分片都下 载成功后,完成整个文件的下载。在下载的过程中会记录当前下载的进度信息 (记录在checkpoint文件中)和已下载的分片,如果下载过程中某一分片下载失败,再次下 载时会从checkpoint文件中记录的点继续下载。这要求再次调用时要指定与上次 相同的checkpoint文件。下载完成后,checkpoint文件会被删除。 import "github.com/aliyun/aliyun-oss-go-sdk/oss" client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret") if err != nil { // HandleError(err) } bucket, err := client.Bucket("my-bucket") if err != nil { // HandleError(err) } err = bucket.DownloadFile("my-object", "LocalFile", 100*1024, oss.Routines(3), oss.Checkpoint(true, "")) if err != nil { // HandleError(err) } 注意: SDK会将下载的中间状态信息记录在cp文件中,所以要确保用户对cpt文 件有写权限 cpt文件记录了下载的中间状态信息并自带了校验,用户不能去编辑它,如 果cpt文件损坏则重新下载文件 如果下载过程中待下载的Object发生了改变(ETag改变),或者part文件丢 失或被修改,则重新下载文件 提示: 指定断点续传checkpoint文件路径使用oss.Checkpoint(true, "your-cp-file.cp") 使用bucket.DownloadFile(objectKey, localFile, 100*1024),默认不使用分片并发下载、不启动断点续传

2019-12-01 23:14:48 0 浏览量 回答数 0

问题

网站主机开通了但在上传文件时,要求删除首页默认设置文件,结果不小心全删了,怎么能挽救的?系统是Windows的。求大神教!

leon-w 2019-12-01 20:19:30 939 浏览量 回答数 2

问题

咨询sdk断点续传和文件校验比较问题

sz_test_2017 2019-12-01 21:48:59 1961 浏览量 回答数 3

回答

Re免费主机上传不了文件 我还是付费的主机,传个文件就传了两天都没有传完,经常掉线,不敢恭维啊

天歌 2019-12-01 23:15:14 0 浏览量 回答数 0

问题

如何快速的把文件传到阿里云OSS服务器

老恭 2019-12-01 21:31:30 9868 浏览量 回答数 2

问题

centOS主机用ftp无法上传文件

烛焰流火 2019-12-01 19:47:25 1611 浏览量 回答数 1

问题

在form表单中上传文件不成功?? 报错

优选2 2020-06-04 18:03:08 2 浏览量 回答数 1

问题

在form表单中上传文件不成功?? 400 报错

爱吃鱼的程序员 2020-06-02 12:03:00 0 浏览量 回答数 1

问题

在form表单中上传文件不成功?? 400 报错

爱吃鱼的程序员 2020-05-29 17:57:11 0 浏览量 回答数 1

问题

flash fxp 传输文文件传不上去,能下载文件,望解决

1910331210105601 2019-12-01 19:02:20 206 浏览量 回答数 1

问题

OSS大文件怎么上传?昨天一个8M的歌曲都传不了。

2019-12-01 21:21:07 7998 浏览量 回答数 4

问题

如何用js+html+server端代码实现上传文件并带进度条

a123456678 2019-12-01 20:25:05 1596 浏览量 回答数 1

回答

回 1楼dongshan8的帖子 putty不是官方推荐的么- -,如果是开发,那么没有汉字命名很正常,但是我传普通的资料文件到服务器这个需求也很正常吧,资料文件一般还是中文吧。现在这样导致我无法传中文文件,传上去虽然putty显示文件内容不是乱码,但是文件名是乱码,这导致我vim后面没办法输入,只能通过ls列出来那个乱码的名字然后再复制。。。麻烦死了 ------------------------- 回 5楼句吴江南的帖子 上面的图里可以看到中文是能显示的啊,只是不能显示从cmd中上传的文件的文件名,文件里面的中文也能照常显示

heaven_xz 2019-12-01 23:26:49 0 浏览量 回答数 0

问题

phposs上传进度的实现

bk 2019-12-01 21:24:29 6265 浏览量 回答数 1

问题

python如何将windows中的文件上传到linux

云栖技术 2019-12-01 19:43:45 1084 浏览量 回答数 1

问题

上传不了文件,可以下载,权限改了还是传不了

2019-12-01 20:55:12 1652 浏览量 回答数 1

回答

不管是串口也好,网卡也好,通讯就是通讯,通讯不能写文件。要写文件,在你的Linux里面总还是要有一个进程去接受传过来的数据,并写到存储设备中去,比如FTP。如果你要传的文件是固定的话,可以考虑自己写一个串口接受并写成文件的程序,放在你的手持终端里运行。如果要传的文件比较复杂,那么最好还是用ftp、sftp之类的。如果你的手持终端没有网卡的话,串口通讯看来是必须要使用的。其他也应该没有什么了。

杨冬芳 2019-12-02 03:07:22 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档上传文件(Object)OSS Ruby SDK提供了丰富的文件上传接口,用户可以通过以下方式向OSS中上传文件: 上传本地文件到OSS流式上传断点续传上传追加上传上传回调 上传本地文件通过Bucket#put_object接口,并指定:file参数来上传一个本地文件到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object', :file => 'local-file') 流式上传在进行大文件上传时,往往不希望一次性处理全部的内容然后上传,而是希望流式地处理,一次上传一部分内容。甚至如果要上传的内容本身就来自网络,不能一次获取,那只能流式地上传。通过Bucket#put_object接口,并指定block参数来将流式生成的内容上传到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object') do |stream| 100.times { |i| stream << i.to_s }end 断点续传上传当上传大文件时,如果网络不稳定或者程序崩溃了,则整个上传就失败了。用户不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次还是无法完成上传。通过Bucket#resumable_upload接口来实现断点续传上传。它有以下参数: key 上传到OSS的Object名字file 待上传的本地文件路径opts 可选项,主要包括: :cpt_file 指定checkpoint文件的路径,如果不指定则默认为与本地文件同目录下的file.cpt,其中file是本地文件的名字:disable_cpt 如果指定为true,则上传过程中不会记录上传进度,失败后也无法进行续传:part_size 指定每个分片的大小,默认为4MB&block 如果调用时候传递了block,则上传进度会交由block处理 详细的参数请参考API文档。 其实现的原理是将要上传的文件分成若干个分片分别上传,最后所有分片都上传成功后,完成整个文件的上传。在上传的过程中会记录当前上传的进度信息(记录在checkpoint文件中),如果上传过程中某一分片上传失败,再次上传时会从checkpoint文件中记录的点继续上传。这要求再次调用时要指定与上次相同的checkpoint文件。上传完成后,checkpoint文件会被删除。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.resumable_upload('my-object', 'local-file') do |p| puts "Progress: #{p}"endbucket.resumable_upload( 'my-object', 'local-file', :part_size => 100 * 1024, :cpt_file => '/tmp/x.cpt') { |p| puts "Progress: #{p}"} 注意: SDK会将上传的中间状态信息记录在cpt文件中,所以要确保用户对cpt文件有写权限。cpt文件记录了上传的中间状态信息并自带了校验,用户不能去编辑它,如果cpt文件损坏则上传无法继续。整个上传完成后cpt文件会被删除。如果上传过程中本地文件发生了改变,则上传会失败。 追加上传OSS支持可追加的文件类型,通过Bucket#append_object来上传可追加的文件,调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存在的文件,这个位置必须是追加前文件的长度。 文件不存在时,调用append_object会创建一个可追加的文件文件存在时,调用append_object会向文件末尾追加内容 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')# 创建可追加的文件bucket.append_object('my-object', 0) {}# 向文件末尾追加内容next_pos = bucket.append_object('my-object', 0) do |stream| 100.times { |i| stream << i.to_s }endnext_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2') 注意: 只能向可追加的文件(即通过 append_object 创建的文件)追加内容。可追加的文件不能被拷贝。 上传回调用户在上传文件时可以指定“上传回调”,这样在文件上传成功后OSS会向用户提供的服务器地址发起一个HTTP POST请求,相当于一个通知机制。用户可以在收到回调的时候做相应的动作。更多有关上传回调的内容请参考OSS 上传回调。 目前OSS支持上传回调的接口只有put_object和resumable_upload。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.put_object('files/hello', file: '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 上面的例子使用put_object上传了一个文件,并指定了上传回调并将此次上传的bucket和object信息添加在body中,应用服务器收到这个回调后,就知道这个文件已经成功上传到OSS了。 resumable_upload的使用方法类似: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 注意: callback的URL不能包含query string,而应该在:query参数中指定。可能出现文件上传成功,但是执行回调失败的情况,此时client会抛出 CallbackError,用户如果要忽略此错误,需要显式接住这个异常。详细的例子请参考callback.rb。接受回调的server请参考callback_server.rb。

2019-12-01 23:14:33 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档上传文件(Object)OSS Ruby SDK提供了丰富的文件上传接口,用户可以通过以下方式向OSS中上传文件: 上传本地文件到OSS流式上传断点续传上传追加上传上传回调 上传本地文件通过Bucket#put_object接口,并指定:file参数来上传一个本地文件到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object', :file => 'local-file') 流式上传在进行大文件上传时,往往不希望一次性处理全部的内容然后上传,而是希望流式地处理,一次上传一部分内容。甚至如果要上传的内容本身就来自网络,不能一次获取,那只能流式地上传。通过Bucket#put_object接口,并指定block参数来将流式生成的内容上传到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object') do |stream| 100.times { |i| stream << i.to_s }end 断点续传上传当上传大文件时,如果网络不稳定或者程序崩溃了,则整个上传就失败了。用户不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次还是无法完成上传。通过Bucket#resumable_upload接口来实现断点续传上传。它有以下参数: key 上传到OSS的Object名字file 待上传的本地文件路径opts 可选项,主要包括: :cpt_file 指定checkpoint文件的路径,如果不指定则默认为与本地文件同目录下的file.cpt,其中file是本地文件的名字:disable_cpt 如果指定为true,则上传过程中不会记录上传进度,失败后也无法进行续传:part_size 指定每个分片的大小,默认为4MB&block 如果调用时候传递了block,则上传进度会交由block处理 详细的参数请参考API文档。 其实现的原理是将要上传的文件分成若干个分片分别上传,最后所有分片都上传成功后,完成整个文件的上传。在上传的过程中会记录当前上传的进度信息(记录在checkpoint文件中),如果上传过程中某一分片上传失败,再次上传时会从checkpoint文件中记录的点继续上传。这要求再次调用时要指定与上次相同的checkpoint文件。上传完成后,checkpoint文件会被删除。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.resumable_upload('my-object', 'local-file') do |p| puts "Progress: #{p}"endbucket.resumable_upload( 'my-object', 'local-file', :part_size => 100 * 1024, :cpt_file => '/tmp/x.cpt') { |p| puts "Progress: #{p}"} 注意: SDK会将上传的中间状态信息记录在cpt文件中,所以要确保用户对cpt文件有写权限。cpt文件记录了上传的中间状态信息并自带了校验,用户不能去编辑它,如果cpt文件损坏则上传无法继续。整个上传完成后cpt文件会被删除。如果上传过程中本地文件发生了改变,则上传会失败。 追加上传OSS支持可追加的文件类型,通过Bucket#append_object来上传可追加的文件,调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存在的文件,这个位置必须是追加前文件的长度。 文件不存在时,调用append_object会创建一个可追加的文件文件存在时,调用append_object会向文件末尾追加内容 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')# 创建可追加的文件bucket.append_object('my-object', 0) {}# 向文件末尾追加内容next_pos = bucket.append_object('my-object', 0) do |stream| 100.times { |i| stream << i.to_s }endnext_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2') 注意: 只能向可追加的文件(即通过 append_object 创建的文件)追加内容。可追加的文件不能被拷贝。 上传回调用户在上传文件时可以指定“上传回调”,这样在文件上传成功后OSS会向用户提供的服务器地址发起一个HTTP POST请求,相当于一个通知机制。用户可以在收到回调的时候做相应的动作。更多有关上传回调的内容请参考OSS 上传回调。 目前OSS支持上传回调的接口只有put_object和resumable_upload。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.put_object('files/hello', file: '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 上面的例子使用put_object上传了一个文件,并指定了上传回调并将此次上传的bucket和object信息添加在body中,应用服务器收到这个回调后,就知道这个文件已经成功上传到OSS了。 resumable_upload的使用方法类似: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 注意: callback的URL不能包含query string,而应该在:query参数中指定。可能出现文件上传成功,但是执行回调失败的情况,此时client会抛出 CallbackError,用户如果要忽略此错误,需要显式接住这个异常。详细的例子请参考callback.rb。接受回调的server请参考callback_server.rb。

2019-12-01 23:14:33 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档上传文件(Object)OSS Ruby SDK提供了丰富的文件上传接口,用户可以通过以下方式向OSS中上传文件: 上传本地文件到OSS流式上传断点续传上传追加上传上传回调 上传本地文件通过Bucket#put_object接口,并指定:file参数来上传一个本地文件到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object', :file => 'local-file') 流式上传在进行大文件上传时,往往不希望一次性处理全部的内容然后上传,而是希望流式地处理,一次上传一部分内容。甚至如果要上传的内容本身就来自网络,不能一次获取,那只能流式地上传。通过Bucket#put_object接口,并指定block参数来将流式生成的内容上传到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object') do |stream| 100.times { |i| stream << i.to_s }end 断点续传上传当上传大文件时,如果网络不稳定或者程序崩溃了,则整个上传就失败了。用户不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次还是无法完成上传。通过Bucket#resumable_upload接口来实现断点续传上传。它有以下参数: key 上传到OSS的Object名字file 待上传的本地文件路径opts 可选项,主要包括: :cpt_file 指定checkpoint文件的路径,如果不指定则默认为与本地文件同目录下的file.cpt,其中file是本地文件的名字:disable_cpt 如果指定为true,则上传过程中不会记录上传进度,失败后也无法进行续传:part_size 指定每个分片的大小,默认为4MB&block 如果调用时候传递了block,则上传进度会交由block处理 详细的参数请参考API文档。 其实现的原理是将要上传的文件分成若干个分片分别上传,最后所有分片都上传成功后,完成整个文件的上传。在上传的过程中会记录当前上传的进度信息(记录在checkpoint文件中),如果上传过程中某一分片上传失败,再次上传时会从checkpoint文件中记录的点继续上传。这要求再次调用时要指定与上次相同的checkpoint文件。上传完成后,checkpoint文件会被删除。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.resumable_upload('my-object', 'local-file') do |p| puts "Progress: #{p}"endbucket.resumable_upload( 'my-object', 'local-file', :part_size => 100 * 1024, :cpt_file => '/tmp/x.cpt') { |p| puts "Progress: #{p}"} 注意: SDK会将上传的中间状态信息记录在cpt文件中,所以要确保用户对cpt文件有写权限。cpt文件记录了上传的中间状态信息并自带了校验,用户不能去编辑它,如果cpt文件损坏则上传无法继续。整个上传完成后cpt文件会被删除。如果上传过程中本地文件发生了改变,则上传会失败。 追加上传OSS支持可追加的文件类型,通过Bucket#append_object来上传可追加的文件,调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存在的文件,这个位置必须是追加前文件的长度。 文件不存在时,调用append_object会创建一个可追加的文件文件存在时,调用append_object会向文件末尾追加内容 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')# 创建可追加的文件bucket.append_object('my-object', 0) {}# 向文件末尾追加内容next_pos = bucket.append_object('my-object', 0) do |stream| 100.times { |i| stream << i.to_s }endnext_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2') 注意: 只能向可追加的文件(即通过 append_object 创建的文件)追加内容。可追加的文件不能被拷贝。 上传回调用户在上传文件时可以指定“上传回调”,这样在文件上传成功后OSS会向用户提供的服务器地址发起一个HTTP POST请求,相当于一个通知机制。用户可以在收到回调的时候做相应的动作。更多有关上传回调的内容请参考OSS 上传回调。 目前OSS支持上传回调的接口只有put_object和resumable_upload。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.put_object('files/hello', file: '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 上面的例子使用put_object上传了一个文件,并指定了上传回调并将此次上传的bucket和object信息添加在body中,应用服务器收到这个回调后,就知道这个文件已经成功上传到OSS了。 resumable_upload的使用方法类似: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 注意: callback的URL不能包含query string,而应该在:query参数中指定。可能出现文件上传成功,但是执行回调失败的情况,此时client会抛出 CallbackError,用户如果要忽略此错误,需要显式接住这个异常。详细的例子请参考callback.rb。接受回调的server请参考callback_server.rb。

2019-12-01 23:14:33 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档上传文件(Object)OSS Ruby SDK提供了丰富的文件上传接口,用户可以通过以下方式向OSS中上传文件: 上传本地文件到OSS流式上传断点续传上传追加上传上传回调 上传本地文件通过Bucket#put_object接口,并指定:file参数来上传一个本地文件到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object', :file => 'local-file') 流式上传在进行大文件上传时,往往不希望一次性处理全部的内容然后上传,而是希望流式地处理,一次上传一部分内容。甚至如果要上传的内容本身就来自网络,不能一次获取,那只能流式地上传。通过Bucket#put_object接口,并指定block参数来将流式生成的内容上传到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object') do |stream| 100.times { |i| stream << i.to_s }end 断点续传上传当上传大文件时,如果网络不稳定或者程序崩溃了,则整个上传就失败了。用户不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次还是无法完成上传。通过Bucket#resumable_upload接口来实现断点续传上传。它有以下参数: key 上传到OSS的Object名字file 待上传的本地文件路径opts 可选项,主要包括: :cpt_file 指定checkpoint文件的路径,如果不指定则默认为与本地文件同目录下的file.cpt,其中file是本地文件的名字:disable_cpt 如果指定为true,则上传过程中不会记录上传进度,失败后也无法进行续传:part_size 指定每个分片的大小,默认为4MB&block 如果调用时候传递了block,则上传进度会交由block处理 详细的参数请参考API文档。 其实现的原理是将要上传的文件分成若干个分片分别上传,最后所有分片都上传成功后,完成整个文件的上传。在上传的过程中会记录当前上传的进度信息(记录在checkpoint文件中),如果上传过程中某一分片上传失败,再次上传时会从checkpoint文件中记录的点继续上传。这要求再次调用时要指定与上次相同的checkpoint文件。上传完成后,checkpoint文件会被删除。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.resumable_upload('my-object', 'local-file') do |p| puts "Progress: #{p}"endbucket.resumable_upload( 'my-object', 'local-file', :part_size => 100 * 1024, :cpt_file => '/tmp/x.cpt') { |p| puts "Progress: #{p}"} 注意: SDK会将上传的中间状态信息记录在cpt文件中,所以要确保用户对cpt文件有写权限。cpt文件记录了上传的中间状态信息并自带了校验,用户不能去编辑它,如果cpt文件损坏则上传无法继续。整个上传完成后cpt文件会被删除。如果上传过程中本地文件发生了改变,则上传会失败。 追加上传OSS支持可追加的文件类型,通过Bucket#append_object来上传可追加的文件,调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存在的文件,这个位置必须是追加前文件的长度。 文件不存在时,调用append_object会创建一个可追加的文件文件存在时,调用append_object会向文件末尾追加内容 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')# 创建可追加的文件bucket.append_object('my-object', 0) {}# 向文件末尾追加内容next_pos = bucket.append_object('my-object', 0) do |stream| 100.times { |i| stream << i.to_s }endnext_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2') 注意: 只能向可追加的文件(即通过 append_object 创建的文件)追加内容。可追加的文件不能被拷贝。 上传回调用户在上传文件时可以指定“上传回调”,这样在文件上传成功后OSS会向用户提供的服务器地址发起一个HTTP POST请求,相当于一个通知机制。用户可以在收到回调的时候做相应的动作。更多有关上传回调的内容请参考OSS 上传回调。 目前OSS支持上传回调的接口只有put_object和resumable_upload。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.put_object('files/hello', file: '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 上面的例子使用put_object上传了一个文件,并指定了上传回调并将此次上传的bucket和object信息添加在body中,应用服务器收到这个回调后,就知道这个文件已经成功上传到OSS了。 resumable_upload的使用方法类似: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 注意: callback的URL不能包含query string,而应该在:query参数中指定。可能出现文件上传成功,但是执行回调失败的情况,此时client会抛出 CallbackError,用户如果要忽略此错误,需要显式接住这个异常。详细的例子请参考callback.rb。接受回调的server请参考callback_server.rb。

2019-12-01 23:14:33 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档上传文件(Object)OSS Ruby SDK提供了丰富的文件上传接口,用户可以通过以下方式向OSS中上传文件: 上传本地文件到OSS流式上传断点续传上传追加上传上传回调 上传本地文件通过Bucket#put_object接口,并指定:file参数来上传一个本地文件到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object', :file => 'local-file') 流式上传在进行大文件上传时,往往不希望一次性处理全部的内容然后上传,而是希望流式地处理,一次上传一部分内容。甚至如果要上传的内容本身就来自网络,不能一次获取,那只能流式地上传。通过Bucket#put_object接口,并指定block参数来将流式生成的内容上传到OSS: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.put_object('my-object') do |stream| 100.times { |i| stream << i.to_s }end 断点续传上传当上传大文件时,如果网络不稳定或者程序崩溃了,则整个上传就失败了。用户不得不重头再来,这样做不仅浪费资源,在网络不稳定的情况下,往往重试多次还是无法完成上传。通过Bucket#resumable_upload接口来实现断点续传上传。它有以下参数: key 上传到OSS的Object名字file 待上传的本地文件路径opts 可选项,主要包括: :cpt_file 指定checkpoint文件的路径,如果不指定则默认为与本地文件同目录下的file.cpt,其中file是本地文件的名字:disable_cpt 如果指定为true,则上传过程中不会记录上传进度,失败后也无法进行续传:part_size 指定每个分片的大小,默认为4MB&block 如果调用时候传递了block,则上传进度会交由block处理 详细的参数请参考API文档。 其实现的原理是将要上传的文件分成若干个分片分别上传,最后所有分片都上传成功后,完成整个文件的上传。在上传的过程中会记录当前上传的进度信息(记录在checkpoint文件中),如果上传过程中某一分片上传失败,再次上传时会从checkpoint文件中记录的点继续上传。这要求再次调用时要指定与上次相同的checkpoint文件。上传完成后,checkpoint文件会被删除。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')bucket.resumable_upload('my-object', 'local-file') do |p| puts "Progress: #{p}"endbucket.resumable_upload( 'my-object', 'local-file', :part_size => 100 * 1024, :cpt_file => '/tmp/x.cpt') { |p| puts "Progress: #{p}"} 注意: SDK会将上传的中间状态信息记录在cpt文件中,所以要确保用户对cpt文件有写权限。cpt文件记录了上传的中间状态信息并自带了校验,用户不能去编辑它,如果cpt文件损坏则上传无法继续。整个上传完成后cpt文件会被删除。如果上传过程中本地文件发生了改变,则上传会失败。 追加上传OSS支持可追加的文件类型,通过Bucket#append_object来上传可追加的文件,调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存在的文件,这个位置必须是追加前文件的长度。 文件不存在时,调用append_object会创建一个可追加的文件文件存在时,调用append_object会向文件末尾追加内容 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')# 创建可追加的文件bucket.append_object('my-object', 0) {}# 向文件末尾追加内容next_pos = bucket.append_object('my-object', 0) do |stream| 100.times { |i| stream << i.to_s }endnext_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-1')next_pos = bucket.append_object('my-object', next_pos, :file => 'local-file-2') 注意: 只能向可追加的文件(即通过 append_object 创建的文件)追加内容。可追加的文件不能被拷贝。 上传回调用户在上传文件时可以指定“上传回调”,这样在文件上传成功后OSS会向用户提供的服务器地址发起一个HTTP POST请求,相当于一个通知机制。用户可以在收到回调的时候做相应的动作。更多有关上传回调的内容请参考OSS 上传回调。 目前OSS支持上传回调的接口只有put_object和resumable_upload。 require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.put_object('files/hello', file: '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 上面的例子使用put_object上传了一个文件,并指定了上传回调并将此次上传的bucket和object信息添加在body中,应用服务器收到这个回调后,就知道这个文件已经成功上传到OSS了。 resumable_upload的使用方法类似: require 'aliyun/oss'client = Aliyun::OSS::Client.new( endpoint: 'endpoint', access_key_id: 'AccessKeyId', access_key_secret: 'AccessKeySecret')bucket = client.get_bucket('my-bucket')callback = Aliyun::OSS::Callback.new( url: 'http://10.101.168.94:1234/callback', query: {user: 'put_object'}, body: 'bucket=${bucket}&object=${object}')begin bucket.resumable_upload('files/hello', '/tmp/x', callback: callback)rescue Aliyun::OSS::CallbackError => e puts "Callback failed: #{e.message}"end 注意: callback的URL不能包含query string,而应该在:query参数中指定。可能出现文件上传成功,但是执行回调失败的情况,此时client会抛出 CallbackError,用户如果要忽略此错误,需要显式接住这个异常。详细的例子请参考callback.rb。接受回调的server请参考callback_server.rb。

2019-12-01 23:14:32 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站