• 关于

    版本控制文件有什么用

    的搜索结果

问题

Git学习之思维导图

本文只是整理一下git的大纲,如果想要行云流水的使用,请参考相关文档。 注意:思维导图的最后是终端命令,由于字体的关系--连成一起,读者看到长的—其实就是-- ...
技术小菜鸟 2019-12-01 21:11:54 2919 浏览量 回答数 1

回答

Re有没有谁捣鼓过php升级 web一键安装包,这个脚本已重新编写,现在web一键安装包php支持三个版本5.3.18/5.4.23/5.5.7。最新版本的安装包最近会发布在官网,敬请关注! 另外关于升级这块,由于不知道用户具体老版本中配置了些什么内容,所以升级涉及到配置文件的兼容性、数据迁移问题,无法简单用脚本控制升级。这个需要手动进行编译升级,然后配置自己的php里面的参数。 如果有什么问题,可以联系我。
乔锐杰 2019-12-02 02:31:34 0 浏览量 回答数 0

回答

--- 1、缓存要控制好,因为一般html如果没有明确meta中的缓存,页面很有可能会被浏览器,或其它proxy、vpn等设备缓存页面信息,到时你想更新页面都难。 2、既然是html就用http server来处理(apache ht,nginx等) 3、文件的生成规则要思考一下,有整目录式(一天一个目录),独立文件式(文件替换)。 建议放在统一目录下,用程序先对老目录归档copy。再用move移动新生成的目录过来。这样的好处是万一有问题可以回滚上一个版本。文件替换风险就比较高。 4、更多页面的处理要注意,一般都会有一个更多页。p1.html,p2.html,时间长了就会有很多页p。每你导出将都会全部更新,如果的数据量大可以做归档处理,或只cache前几个分页。 5、静态html中ajax你也可以使用,用get从静态的json文件中内容。 ###### 引用来自“肖国颖”的答案 1、缓存要控制好,因为一般html如果没有明确 meta中的缓存,页面很有可能会被浏览器,或其它proxy、vpn等设备缓存页面信息,到时你想更新页面都难。 2、既然是html就用http server来处理(apache ht,nginx等) 3、文件的生成规则要思考一下,有整目录式(一天一个目录),独立文件式(文件替换)。 建议放在统一目录下,用程序先对老目录归档copy。再用move移动新生成的目录过来。这样的好处是万一有问题可以回滚上一个版本。文件替换风险就比较高。 4、更多页面的处理要注意,一般都会有一个更多页。p1.html,p2.html,时间长了就会有很多页p。每你导出将都会全部更新,如果的数据量大可以做归档处理,或只cache前几个分页。 5、静态html中ajax你也可以使用,用get从静态的json文件中内容。 非常感谢您的详细回答,您说的好多东西,都不太清楚,我还需要消化下了。 我之前的思路是,服务端构建新数据为html代码,写入 yyyyMMdd/1.txt。和index.html中需要显示变动数据的位置对应。在后在浏览器用用Jquery的onload加载 yyyyMMdd下的对应txt,这样也免除直接替换或是写入文件,可能造成的瞬时访问错误了。 但是,我对总体性能没什么把握。还希望能够继续指点下。谢谢。
kun坤 2020-06-08 18:51:11 0 浏览量 回答数 0

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

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

回答

《操作系统》课程设计报告课程设计题目:操作系统课程设计 设计时间:2016/1/10一、 课程设计目的与要求需要完成的内容:(1) 安装虚拟机:Vmware、Vmware palyer (free)(推荐)、Virtualbox(推荐)、VMLite、Xen、Virtuozzo、KVM(2) 安装和使用Linux(推荐SUSE)(注意包含内核源码和内核开发工具等)(3) Linux内核源代码配置和重编(4) 找到VFS和一个具体文件系统的源代码(ext3或ext4)(5) 读懂VFS和具体文件系统如何关联(如何体现virtual file switch)(6) 找到具体文件系统的read或write函数,使用printk(使用方法和printf一样)向后台打印文件读写信息。(read或write函数选一个即可)(7) 使用dmesg –c查看后台的输出。可以附加的功能(8) 复制ext3或ext4的源代码(注意与当前使用的文件系统有区别),修改Makefile文件,使用模块编译方式(9) 修改ext3或ext4的源代码,实现新的文件系统。(至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。)(10) 动态加载和卸载新的文件系统。二、 课程设计内容(1) 安装虚拟机(2) 安装和使用Linux(3) Linux内核源代码配置和重编(4) 提取并动态加载和卸载新的文件系统三、 课程设计设备与环境设备信息:PC 虚拟机:VM11 四、 设计正文(包括分析与设计思路、各模块流程图、带注释的主要算法源码、内核编译过程以及动态模块加载过程等,如有改进或者拓展,请重点用一小节进行说明)(1) 安装虚拟机(2) 安装和使用Linux(推荐SUSE)(注意包含内核源码和内核开发工具等)安装OpenSUSE,并下载相近版本的内核源码 初始内核版本 下载的源代码包 (3) Linux内核源代码配置和重编利用vmtools(虚拟机提供的可以在宿主机和虚拟机之间自由复制文件的工具)将内核源码包复制进虚拟机,解压到/home/a123/linux-3.12.51 *因为分配的磁盘空间比较小,所以没有按照惯例把内核源码放在/usr/src目录下(如果放在这里,会出现空间不足的情况)附:磁盘分配情况/swap(交换分区) 2.4G/(根目录) 11G/home(用户目录) 13G 解压好的内核源码文件在编译前需要稍作修改(6),并且缺乏一个config文件告诉编译器编译哪些功能。Config文件可以用make menuconfig命令生成,但是需要自己选择相应的功能,太过复杂,这里有一个简便的方法因为下载的内核源码是相近的版本,所以可以使用现有版本的config文件,该文件在/boot目录下使用cp /boot/config-3.11.6-4-desktop .config命令将此文件复制过来 注意:应当在内核所在的文件目录下使用此命令复制成功 执行 make menuconfig命令,进入选择界面,直接保存退出即可虽然新版本的Linux可以直接执行make一步完成所有的编译工作,但此次课程设计仍然采用以前的编译的方式 执行 make bzImage命令——编译压缩的内核编译完成 执行 make modules命令——编译模块 执行 make modules_install命令——安装模块 注: 在make menuconfig时我在General setup中把版本号改过 执行 make install命令——安装新内核 Reboot重启 说明内核修改安装完毕,成功(4) 找到VFS和一个具体文件系统的源代码(ext3或ext4)VFS:虚拟文件系统,顾名思义。它为应用程序员提供一层抽象,屏蔽底层各种文件系统的差异。Linux的文件系统采用面向对象的方式设计,这使得Linux的文件系统非常容易扩展,我们可以非常容易将一个新的文件系统添加到Linux中。在此主要对象之一super_block位于中 代码量巨大,此为部分代码Ext4在fs文件夹下的ext4文件夹内 此处打开file.c用vim打开file.c部分代码如下 (5) 读懂VFS和具体文件系统如何关联(如何体现virtual file switch)在(4)中已经提到,VFS是C语言写的一个面向对象的设计,比如我们要调用alloc_inode方法:sb->s_op->alloc_inode(sb)。这里与面向对象语言的差别是,面向对象语言里实例方法可以访问到this,这样就可以访问到自身的所有成员,但是在C里却做不到,所以需要将自身作为参数传入到函数中、图一表示了对文件写操作的调用过程 (6) 找到具体文件系统的read或write函数,使用printk(使用方法和printf一样)向后台打印文件读写信息。(read或write函数选一个即可)因为Linux系统对文件的操作是通过函数调用来实现的,所以在此我修改的是vfs这一层,找到fs,目录下的read_write.c并打开找到do_sync_read函数,在其返回前加入printk语句 (7) 使用dmesg –c查看后台的输出。 (8) 复制ext3或ext4的源代码(注意与当前使用的文件系统有区别),修改Makefile文件,使用模块编译方式 (9) 修改ext3或ext4的源代码,实现新的文件系统。(至少需要修改文件系统的名称,最好能对文件写操作向系统后台打印出信息。) 使其在加载和卸载的时候能够printk到buffer缓冲中(10) 动态加载和卸载新的文件系统。使用insmod语句加载使用lsmod语句加载 加载成功接下来使用dmesg 查看缓冲区内容 成功接下来使用rmmod语句卸载模块 成功五、 课程设计结果及分析课程设计结果:成功分析:Linux文件系统使用了面向对象的设计方法,保证了其对用户的透明,VFS层实现了系统与文件系统的无关性,增加了系统对不同文件系统的兼容性。六、 总结与进一步改进设想总结:1.编译内核的时候,可以使用make XXX –j8这样可以开启多线程编译(我的虚拟机分配的是8核心),加快编译速度2.printk语句我写的是printk(”””DoingRead”);本意是利用printk的优先级,将其输出到用户态的控制台,结果语法错误,并没有输出到控制台改进设想:修改的文件前加上语句,实现对控制台的输出 define KERN_EMERG 0(因为缺少这个宏,导致系统并没有理解我的0是什么意思) 七、 答辩(或汇报)记录(包括问题和答案,每个人不少于3个) 显示内核版本 使用dmesg –c命令 加载新模块 八、 参考文献 鸟哥的Linux私房菜 百度百科:printk概述http://baike.baidu.com/link?url=Kv5e2xb9thGENkIvSQmjpkYb8kbKoNvEhmt2oICTmDAn0wj2YADVf8dsrzBtz2fRt0uwa_3joQ-o40wKwwL68a Linux虚拟文件系统(VFS)http://www.cnblogs.com/yuyijq/archive/2013/02/24/2923855.html LinuxEXT4文件系统分析http://wenku.baidu.com/link?url=Wi-vyrROUIJqRk4eSsuwOwRe0Sf-ydXamWNR0H2HCrN9CPHJg80lXpu0Gi_ZGT-X5yKnknl86ooHdckHhJxybmyBR2szWsPDOV0IPJ6fJXO
杨冬芳 2019-12-02 03:10:35 0 浏览量 回答数 0

回答

ReOSS大学堂OSS产品技术互动第一期OSS的介绍及控制台操作(3.23-3.27) 我想问几个问题: 1、OSS选定存储区域后,在这个区域里有什么数据可靠性措施?比如一般的存3份? 2、OSS选定存储区域后,可以跨区域存储吗?比如我觉得只存在杭州一个区域不安全,我希望在北京存储区域再放一份,可以实现吗? 3、OSS能提版本控制功能吗?一个文件,我在下载到本地修改后,再上传,能提供上一次的版本控制吗? 4、OSS只有官方推荐第三方管理软件,有没有官方自己的管理软件? 5、OSS的API与其他厂商的兼容吗?比如和X牛? 6、OSS后续有什么新功能设计?比如音视频转码? 7、我对OSS的流量计费有些不理解,为什么要做这么复杂的阶梯计费方式啊?这很容易让我们计算价格错误啊 8、OSS存储计费,是用阶梯方式计费吗?还是按传统的,我用了600G,就按600G范围的单价计算?,如果是按阶梯计费方式,这有什么优势呢? 9、最后,能说说OSS的定位是什么?面向服务商的,还是面向最终客户的? 哈,问题比较多啊,不好意思,我真是有很多不明白的地方。 谢谢你的回复!
老陈小安 2019-12-02 01:54:16 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:12 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:12 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:13 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:11 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:11 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:11 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:11 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:13 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:12 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:11 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:13 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:10 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 简介 OSS FTP工具是一个特殊FTP server, 它接收普通FTP请求后,将对文件、文件夹的操作映射为对OSS的操作,从而使得您可以基于FTP协议来管理存储在OSS上的文件。 说明 生产环境请使用oss sdk, OSS FTP工具主要面向个人用户使用。 主要特性 跨平台:无论是Windows、Linux还是Mac, 无论是32位还是64位操作系统,无论是图形界面还是命令行都可以运行。 免安装: 解压后可直接运行。 免设置:无需设置即可运行。 透明化: FTP工具是python写的,您可以看到完整的源码,我们稍后也会开源到Github。 主要功能 支持文件和文件夹的上传、下载、删除等操作。 通过Multipart方式,分片上传大文件。 支持大部分FTP指令,可以满足日常FTP的使用需求。 说明 目前在1.0版本中,考虑到安装部署的简便,OSS FTP工具没有支持TLS加密。由于FTP协议是明文传输的,为了防止您的密码泄漏,建议将FTP server和client运行在同一台机器上,通过127.0.0.1:port的方式来访问。 不支持rename和move操作。 安装包解压后的路径不要含有中文。 FTP server的管理控制页面在低版本的IE中可能打不开。 FTP server支持的Python版本:Python2.6和Python2.7。 下载 Windows:ossftp-1.0.3-win.zip 由于Windows不会默认安装Python2.7,所以安装包中包含了Python2.7,免去您python安装配置的麻烦,解压即可使用。 Linux/Mac:ossftp-1.0.3-linux-mac.zip 由于Linux/Mac系统默认会安装Python2.7或Python2.6,所以安装包中不再包含可执行的python, 只包含了相关依赖库。 运行 首先解压之前下载的文件,然后根据环境情况选择不同的运行方式。 Windows: 双击运行start.vbs即可 Linux: 打开终端,运行$ bash start.sh Mac:双击start.command,或者在终端运行$ bash start.command 上述步骤会启动一个FTP server, 默认监听在127.0.0.1的2048端口。同时,为了方便您对FTP server的状态进行管控,还会启动一个web服务器,监听在127.0.0.1的8192端口。如果您的系统有图形界面,还会自动打开控制页面,如下所示: 说明 大部分情况不要任何配置,就可以运行一个FTP server了,如果想对FTP server进行配置, 请注意需要重启才能生效。 连接到FTP server 推荐使用FileZilla客户端去连接FTP server。下载安装后,按如下方式连接即可: 主机: 127.0.0.1 登录类型: 正常 用户:access_key_id/bucket_name 密码:access_key_secret 说明 用户中,/是必须的,如用户tSxyiUM3NKswPMEp/test-hz-jh-002。 access_key_id和access_key_secret的获取,请参见OSS访问控制。 高级使用 通过控制页面管理FTP server 修改监听地址 如果需要通过网络来访问FTP server, 那么需要修改监听地址,因为默认的监听地址127.0.0.1只允许来自本地的访问。可以修改成内网ip或公网ip。 修改监听端口 修改FTP server监听的端口, 建议端口大于1024, 因为监听1024以下的端口时需要管理员权限。 修改日志等级 设置FTP server的日志级别。FTP server的日志会输出到data/ossftp/目录下, 可以通过控制页面的日志按钮在线查看。默认的日志界别为INFO, 打印的日志信息较少,如果需要更详细的日志信息,可以修改为DEBUG模式。如果希望减少日志的输出,可以设置级别为WARNING或ERROR等。 设置Bucket endpoints FTP server默认会探索bucket的所属location信息,随后将请求发到对应的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTP server会优先尝试内网访问oss。如果您设置了bucket endpoints, 如设置为test-bucket-a.oss-cn-hangzhou.aliyuncs.com, 那么当访问test-bucket-a时,就会使用oss-cn-hangzhou.aliyuncs.com域名。 设置显示语言 通过设置cn/en,可修改FTP控制页面的显示语言为中文/英文。 说明 所有修改都需要重启才能生效。 上述的所有修改其实都是修改的ftp根目录下的config.json, 所以您可以直接修改该文件。 直接启动FTP server(Linux/Mac) 可以直接启动ossftp目录下的ftpserver.py, 免去web_server的开销。 $ python ossftp/ftpserver.py &配置修改方式同上。 可能遇到的问题 如果连接FTP server时,遇到以下错误: 有两种可能: 输入的 access_key_id 和 access_key_secret有误。 解决:请输入正确的信息后再重试。 所用的access_key信息为ram 子账户的access_key,而子账户不具有List buckets权限。 解决:当使用子账户访问时,请在控制页面中指定bucket endpoints, 即告诉FTP server某个bucket应该用什么endpoint来访问。同时,子账户也需要一些必须的权限,关于使用ram访问oss时的访问控制,请参考文档访问控制。具体如下。 只读访问 OSS FTP工具需要的权限列表为 ListObjects、GetObject、HeadObject。关于如何创建一个具有只读访问的ram子账户,请参考图文教程如何结合ram实现文件共享。 上传文件 如果允许ram子账户上传文件,还需要PutObject。 删除文件 如果允许ram子账户删除文件,还需要DeleteObject。 如果您在Linux下运行FTP server,然后用FileZilla连接时遇到如下错误:501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)一般是因为本地的中文编码有问题。在将要运行start.sh的终端中输入下面的命令,然后再重新启动即可。$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
2019-12-01 23:15:12 0 浏览量 回答数 0

问题

如何用KodExplorer可道云实现阿里云OSS的Web管理

目前,KodExplorer可道云保存在物理路径,第三方存储(分布式存储,如自建HDFS,或阿里oss,七牛cdn等)则为数据库记录ÿ...
溪云cool 2019-12-01 21:49:57 2833 浏览量 回答数 1

问题

试用关系型数据库SQLServer的个人感受

试用了2天阿里云的关系型数据库SQL Server,总的来说是很实用的,方便中小企业的各种互联网业务应用,节约了购买数据库版权和聘请专业DBA人才的成本,其操作与本地数据库基本没什么太...
kazake 2019-12-01 21:05:44 8519 浏览量 回答数 1

回答

调起实人认证SDK,进入认证页面一直显示转圈加载 查看logcat日志。 若出现ErrorCode=103,先检查abiFilters是否配置为armeabi-v7a和arm64-v8a。若无问题,检查工程根目录下gradle/wrapper/gradle-wrapper.properties中使用的gradle版本是否是比较新的5.4.1。若是,请至少降至5.1.1或使用4.x版本(gradle tools同步降级至3.4及以下版本)。 说明 目前实人SDK依赖包不兼容较新的gradle 5.4.1及gradle tools 3.5版本。 若出现ErrorCode=202,则是签名图片文件(yw_1222_0670.jpg)有问题。一般是获取签名图片文件时的apk的签名和当前正在运行的apk签名不一致。请参考集成文档开头说明检查签名,使用正确签名的apk获取签名图片文件。如果确认自己确实需要多个签名,请分别上传不同签名的apk包获取不同的签名图片文件,在运行时使用正确的签名图片文件。 若出现ErrorCode=203,请依次确认以下三种情况。 签名图片文件(yw_1222_0670.jpg)不存在,请确保签名图片文件在res/drawable目录下。 安卓环境下可能是因为资源优化被优化成了0KB,请检查APK中的签名图片文件(res/drawable/yw_1222_0670.jpg),可参考shrinkResources解决方案。若您未使用官方的资源优化方案,使用了如AndResGuard等非Google官方的第三方压缩混淆插件,建议参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。 如果是在Android Studio下调试发现找不到图片,但是确认过图片是正常的,请关闭Android Studio的Instant Run功能。在Instant Run下apk并非一个完整bundle,其资源文件被拆分到特定bundle中,图片路径发生改变会导致找不到签名图片文件。 若出现ErrorCode=209,请检查图片文件是否更新到最新,需要注意rpsdk 3.1.x.x(含)以上和3.0.x.x(含)以下两个版本的图片文件不能共用。 调起实人认证 SDK,进入认证页面展示 “UNKNOWN_ERROR” 或 “网络异常,请检查网络” 查看logcat日志。 若出现ErrorCode=1208、1215、1411,说明当前开发包与在管理控制台下载SDK时上传包的包名(package name)或签名(keystore)不一致。请在管理控制台重新上传当前开发包,用新下载SDK中的yw_1222_.jpg签名图片文件替换开发包中原有的文件。 工程上,通常对IDE中直接运行(debug)和正式打包(release)会配置不同的签名(keystore),在IDE中直接编译运行的是debug包,其签名图片文件和release包是不同的。 若出现ErrorCode=1412、1225,请依次确认以下三种情况。 签名图片文件(yw_1222_0670.jpg)不存在,请确保签名图片文件在res/drawable目录下。 安卓环境下可能是因为资源优化被优化成了0KB,请检查APK中的签名图片文件(res/drawable/yw_1222_0670.jpg),可参考shrinkResources解决方案。若您未使用官方的资源优化方案,使用了如AndResGuard等非Google官方的第三方压缩混淆插件,建议参考相应插件的官方文档,检查图片名是否被混淆,或路径是否被混淆,以及图片文件是否被压缩。 如果是在Android Studio下调试发现找不到图片,但是确认过图片是正常的,请关闭Android Studio的Instant Run功能。在Instant Run下apk并非一个完整bundle,其资源文件被拆分到特定bundle中,图片路径发生改变会导致找不到签名图片文件。 项目中之前引入的组件与实人认证SDK中的组件有重复,例如SecurityGuardSDK、oss-android-sdk 若SecurityGuardSDK组件有重复,删除低版本,但保留两个版本的yw_1222_.jpg签名图片文件;若oss-android-sdk 等其他组件有重复,删除低版本即可。 接入实人认证SDK时报Merge Manifest的错误 在AndroidManifest.xml中的application节点上加入tools:replace="android:allowBackup"。 集成实人认证SDK启用混淆时编译报错 在ProGuard配置文件中添加相应配置,例如: dontwarn com.taobao.securityjni.** keep class com.taobao.securityjni.{;} dontwarn com.taobao.wireless.security.** keep class com.taobao.wireless.security.{;} dontwarn com.ut.secbody.** keep class com.ut.secbody.{;} dontwarn com.taobao.dp.** keep class com.taobao.dp.{;} dontwarn com.alibaba.wireless.security.** keep class com.alibaba.wireless.security.{;} dontwarn com.alibaba.security.rp.** keep class com.alibaba.security.rp.{;} dontwarn com.alibaba.sdk.android.** keep class com.alibaba.sdk.android.{;} dontwarn com.alibaba.security.biometrics.** keep class com.alibaba.security.biometrics.{;} dontwarn android.taobao.windvane.** keep class android.taobao.windvane.**{*;} 进入认证页面即crash,日志报Error inflating class com.alibaba.security.rp.view.TopBar 检查下自己应用的res/layout目录下是否存在同名的top_bar.xml布局文件,有的话改成其他名字,再试下。 做完活体识别提示人脸验证失败或拍照上传卡在 0% 请确认网络是否有问题(如网络是否连通、是否开启了网址代理等)。 请检查当前手机系统版本是否为Android 9及以上,若OSS SDK版本在2.9.0以下,请升级至2.9.0及以上版本。 若接入的rpsdk是3.0.0.3及以下版本,请检查应用是否未申请外部存储的读写权限,若无权限需在应用权限管理的地方开启存储权限,或直接将rpsdk升级至最新版本。 若确认以上均无问题,请尽量提供下logcat日志,若无法提供运行时的系统日志,请提供做认证时的verifyToken、ticketId等信息。 APP 采用了插件机制,集成实人认证Android SDK要注意什么 建议把实人认证Android SDK放到主Bundle下。
保持可爱mmm 2020-03-27 19:42:26 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:17 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:14 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:18 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:16 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:15 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:18 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 Q: ossfs适合什么样的程序? ossfs能把oss bucket挂载到本地,如果您使用的软件没有支持OSS,但您又想让数据能自动同步到OSS,那么ossfs是很好的选择。 Q: ossfs有什么局限性? 由于数据需要经过网络同步到云端,ossfs在性能和功能上可能与本地文件系统有差距。如果您想让数据库等对io要求很高的应用跑在ossfs挂载的盘上,请慎重考虑。和本地文件系统具体差异: 随机或者追加写文件会导致整个文件的重写。 元数据操作,例如list directory,性能较差,因为需要远程访问OSS服务器。 文件/文件夹的rename操作不是原子的。 多个客户端挂载同一个oss bucket时,依赖用户自行协调各个客户端的行为。例如避免多个客户端写同一个文件等等。 不支持hard link。 Q: ossfs一定要阿里云的机器才能用么? ossfs不限制一定要阿里云的内网才可以使用,外网机器依然可以使用。 Q: ossfs能不能同时挂载多个OSS bucket? 可以的,在passwd-ossfs文件中写入多个OSS配置信息即可。支持不同帐号的OSS。 Q: 我在yum/apt-get安装ossfs,遇到conflicts with file from package fuse-devel的错误,请问是怎么回事? 您的系统中存在老版本的fuse,请先使用相关的包管理器卸载,再重新安装ossfs。 Q: ossfs工作不正常,如何debug? 您可以使用在挂载时,加上-d -o f2参数,ossfs会把日志写入到系统日志中。在centos系统中,在/var/log/messages中。 您也可以在挂载时使用-f -d -o f2参数,ossfs会把日志输出到屏幕上。 Q: 为什么我在mount时遇到 ossfs: unable to access MOUNTPOINT /tmp/ossfs: Transport endpoint is not connected这样的错误? 请先umount对应的目录。 请检查您在使用ossfs挂载时,填入的url参数是否正确,是否和bucket/access key id/access key secret匹配。 特别注意:url中不包含bucket的名字。例如:您在oss控制台中看到bucket的域名是这样的:ossfs-test-1.oss-cn-hangzhou.aliyuncs.com。那么填入的url则是:http://oss-cn-hangzhou.aliyuncs.com。 Q: ossfs提示ossfs: unable to access MOUNTPOINT /tmp/odat: No such file or directory 这是您未创建该目录导致的,在挂载前需要创建对应目录。 Q: 我把bucket挂载到本地后,ls目录,却收到operation not permitted错误,这是为什么? 请检查您的bucket中,是否包含目录名含有不可见字符的OSS object。文件系统对文件/目录名有更严格的限制,因此会收到上述错误。使用其他工具对这些object重命名后,ls就能正确显示目录内容了。 Q: 我的一个目录下有非常多的文件,为什么ls该目录很慢? 假设一个目录下有n个文件,那么ls该目录至少需要n次OSS http requests。在文件非常多的时候,这可能造成严重的性能问题。 您可以采用下面两个办法优化: 通过-omax_stat_cache_size=xxx参数增大stat cache的size,这样第一次ls会较慢,但是后续的ls就快了,因为文件的元数据都在本地cache中。默认这个值是1000,大约消耗4MB内存,请根据您机器内存大小调整为合适的值。 使用ls -f命令,这个命令会消除与OSS的n次http请求。 具体参见issue 13。 Q: ossfs挂载时如何设置权限? 如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数: ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other 为什么使用allow_other参数,仍然不能访问文件? 注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令。 allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办? 可以通过umask来设置,参见这里。 Q: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user: 方法一: 如果要使挂载的文件夹(/tmp/ossfs)属于某个user,则需要以user的身份创建挂载文件夹和使用ossfs: sudo -u user mkdir /tmp/ossfs sudo -u user ossfs bucket-name /tmp/ossfs 方法二: 首先通过id命令获得指定用户的uid/gid信息。例如获取www用户的uid/gid信息:id www;然后挂载时指定uid/gid参数: ossfs your_bucket your_mountpoint -ourl=your_url -ouid=your_uid -ogid=your_gid 注意:uid/gid都是数字。 Q: 我不是root用户,如何umount ossfs挂载的目录 fusermount -u your_mountpoint Q: 如何开机自动挂载ossfs? Step 1 首先请参考使用说明,把bucket name,access key id/secret等信息写入/etc/passwd-ossfs,并将该文件权限修改为640。 echo your_bucket_name:your_access_key_id:your_access_key_secret > /etc/passwd-ossfs chmod 640 /etc/passwd-ossfs Step 2 接下来针对不同的系统版本,设置方式有所不同 Step 2A 通过fstab的方式自动mount(适用于ubuntu14.04, centos6.5) 在/etc/fstab中加入下面的命令 ossfs#your_bucket_name your_mount_point fuse _netdev,url=your_url,allow_other 0 0 其中上述命令中的your_xxx信息需要根据您的bucket name等信息填入。 保存/etc/fstab文件。执行mount -a命令,如果没有报错,则说明设置正常。 到这一步,ubuntu14.04就能自动挂载了。centos6.5还需要执行下面的命令: chkconfig netfs on Step 2B 通过开机自启动脚本mount(适用于centos7.0及以上的系统) 在/etc/init.d/目录下建立文件ossfs,把模板文件中的内容拷贝到这个新文件中。并将其中的your_xxx内容改成您自己的信息。 执行命令:chmod a+x /etc/init.d/ossfs 上述命令是把新建立的ossfs脚本赋予可执行权限。您可以执行该脚本,如果脚本文件内容无误,那么此时oss中的bucket已经挂载到您指定的目录下了。 执行命令:chkconfig ossfs on 上述命令是把ossfs启动脚本作为其他服务,开机自动启动。 好了,现在ossfs就可以开机自动挂载了。总结起来,如果您是ubuntu14.04和centos6.5,您需要执行Step 1 + Step 2A;如果您是centos7.0系统,您需要执行Step 1 + Step 2B。 Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令 Q: 我需要以www用户挂载ossfs,此时如何设置开机自动挂载? 参照上面的问题的解答,Step 1照做,对Step 2B稍加修改,修改/etc/init.d/ossfs中的命令为: sudo -u www ossfs your_bucket your_mountpoint -ourl=your_url 设置自启动脚本中允许使用sudo,编辑/etc/sudoers,将其中的Defaults requiretty这行改为#Defaults requiretty(注释掉) Q: 遇到fusermount: failed to open current directory: Permission denied错误如何解决? 这是fuse的一个bug,它要求当前用户对当前目录(非挂载目录)有读权限。解决的办法就是cd到一个有读权限的目录再运行ossfs命令。 Q: 使用ECS挂载ossfs,如何避免因后台程序扫描文件而产生费用? 程序扫描ossfs挂载的目录,会转换成向OSS的请求,如果请求次数很多,会产生费用(1分钱/1万次)。如果是updatedb,可以通过修改/etc/updatedb.conf让它跳过。具体做法是: 在PRUNEFS =后面加上fuse.ossfs 在PRUNEPATHS =后面加上挂载的目录 如何确定是哪个进程扫了我的目录? 首先安装auditd: sudo apt-get install auditd 启动auditd: sudo service auditd start 设置监视挂载目录: auditctl -w /mnt/ossfs 在auditlog中可以查看是哪些进程访问了这个目录:ausearch -i | grep /mnt/ossfs Q: 使用ossfs上传到OSS的文件Content-Type全是”application/octet-stream”是怎么回事? ossfs通过查询/etc/mime.types中的内容来确定文件的Content-Type,请检查这个文件是否存在,如果不存在,则需要添加: 对于ubuntu可以通过sudo apt-get install mime-support来添加 对于centos可以通过sudo yum install mailcap来添加 也可以手动添加,每种格式一行,每行格式为:application/javascript js Q: 如何使用supervisor启动ossfs? 安装supervisor,在ubuntu中执行sudo apt-get install supervisor 建立一个目录,编辑ossfs的启动脚本:mkdir /root/ossfs_scripts vi /root/ossfs_scripts/start_ossfs.sh写入如下数据:# 卸载 fusermount -u /mnt/ossfs # 重新挂载,必须要增加-f参数运行ossfs,让ossfs在前台运行 exec ossfs my-bucket my-mount-point -ourl=my-oss-endpoint -f 编辑/etc/supervisor/supervisord.conf,在最后加入下面一段:[program:ossfs] command=bash /root/ossfs_scripts/start_ossfs.sh logfile=/var/log/ossfs.log log_stdout=true log_stderr=true logfile_maxbytes=1MB logfile_backups=10 运行supervisor:supervisordsupervisord 确认一切正常:ps aux | grep supervisor # 应该能看到supervisor进程 ps aux | grep ossfs # 应该能看到ossfs进程 kill -9 ossfs # 杀掉ossfs进程,supervisor应该会重启它, 不要使用killall, 因为killall发送SIGTERM,进程正常退出,supervisor不再去重新运行ossfs ps aux | grep ossfs # 应该能看到ossfs进程如果出错,请检查/var/log/supervisor/supervisord.log和/var/log/ossfs.log。 Q: 遇到”fuse: warning: library too old, some operations may not work”怎么办? 出现的原因是:ossfs编译时所使用的libfuse版本 比运行时链接到的libfuse版本高。这往往是用户自行安装了libfuse导致的。使用我们提供的rpm包安装ossfs,无需再安装libfuse。 在CentOS-5.x和CentOS-6.x上我们提供的rpm包里包含了libfuse-2.8.4,如果在运行的时候环境中有libfuse-2.8.3,并且ossfs被链接到了旧版本的fuse上,就会出现上述warning。 如何确认ossfs运行时链接的fuse版本? 运行ldd $(which ossfs) | grep fuse 例如结果是”/lib64/libfuse.so.2”,那么通过ls -l /lib64/libfuse*可以看到fuse的版本 如何让ossfs链接到正确的版本? 首先通过rpm -ql ossfs | grep fuse找到libfuse的目录 例如结果是”/usr/lib/libfuse.so.2”,则通过LD_LIBRARY_PATH=/usr/lib ossfs …运行ossfs 我能忽略这个WARNING吗? 最好不要,见这个bug Q: 为什么用ossfs看到的文件信息(例如大小)与其他工具看到的不一致? 因为ossfs默认会缓存文件的元信息(包括大小/权限等),这样就不需要每次ls的时候向OSS发送请求,加快速度。 如果用户通过其他程序(例如SDK/官网控制台/osscmd等)对文件进行了修改,那么有可能在ossfs中看到的文件信息 没有及时更新。 如果想禁止ossfs的缓存,那么可以在挂载的时候加上如下参数:-omax_stat_cache_size=0
2019-12-01 23:15:16 0 浏览量 回答数 0

云产品推荐

上海奇点人才服务相关的云产品 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 阿里云AIoT