ECS 挂载 OSS,等同于在ECS 上使用内网的 Bucket 域名,不需要收取流量费用,减少接口代码的编写。

CentOS系统 安装

wget http://gosspublic.alicdn.com/ossfs/ossfs_1.80.6_centos7.0_x86_64.rpm
yum install ossfs_1.80.6_centos7.0_x86_64.rpm

配置账号访问信息。

将Bucket名称以及具有该Bucket访问权限的AccessKey ID和AccessKey Secret信息存放在/etc/passwd-ossfs文件中。文件的权限建议设置为640。

echo BucketName:yourAccessKeyId:yourAccessKeySecret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs

将Bucket挂载到指定目录。

echo bucket-test:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir /tmp/ossfs
ossfs bucket-test /tmp/ossfs -o url=http://oss-cn-shanghai-internal.aliyuncs.com -o allow_other #可以使用内网,免去流量费用 、 加 -o allow_other允许非root用户操作避免因权限问题导致无法操作oss目录,如Nginx

#挂载后,从本地磁盘拖文件到 /tmp/ossfs 目录下,目录、文件权限将默认为 640,所以需要 chmod 进行设置。后期程序在该目录执行的写操作,将为 755

多Bucket

echo bucket-test-1:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** > /etc/passwd-ossfs
echo bucket-test-2:LTAIbZcdVCmQ****:MOk8x0y9hxQ31coh7A5e2MZEUz**** >> /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs mkdir -p /ossfs/bucket-test-1
mkdir -p /ossfs/bucket-test-2 ossfs bucket-test-1 /ossfs/bucket-test-1 -o url=http://oss-cn-shanghai-internal.aliyuncs.com #可以使用内网,免去流量费用
ossfs bucket-test-2 /ossfs/bucket-test-2 -o url=http://oss-cn-shanghai-internal.aliyuncs.com #可以使用内网,免去流量费用

卸载OSS

umount -l /tmp/ossfs  #mkdir 创建的目录
fusermount -u /tmp/ossfs #或者使用该命令卸载

注意:如果 Nginx 无法访问 挂载的 OSS,需要在挂载命令加上 -o allow_other

ossfs 挂载时如何设置权限?
如果要允许其他用户访问挂载文件夹,可以在运行ossfs的时候指定allow_other参数:

ossfs your_bucket your_mount_point -ourl=your_endpoint -o allow_other

为什么使用allow_other参数,仍然不能访问文件?

注意:allow_other是赋予挂载目录其他用户访问的权限,不是里面的文件!如果您要更改文件夹中的文件,请用chmod命令,否则Nginx配置的静态资源无法访问报:failed (1: Operation not permitted)

allow_other默认赋予挂载目录777权限,我想让挂载目录的权限为770,该怎么办?
可以通过umask来设置

使用ossfs上传到OSS的文件的Content-Type全是application/octet-stream

问题分析:上传文件时,ossfs通过查询/etc/mime.types中的内容来设置文件的Content-Type。当该文件不存在时,默认设置为application/octet-stream。

解决方案:请检查这个文件是否存在,如果不存在,则需要添加。

  • 通过命令自动添加mime.types文件

    • Ubuntu系统

      使用  sudo apt-get install mime-support  命令添加。

    • CentOS系统

      使用  sudo yum install mailcap  命令添加。

  • 手动添加mime.types文件
    1. 创建mime.types文件

      vi /etc/mime.types
    2. 添加需要的格式,每种格式一行,每行格式为application/javascript js

添加完成后,需要重新挂载OSS。

 

ECS 挂载 OSS 多Bucket的更多相关文章

  1. ossfs挂载oss到ECS本地并设置权限

    下载ossfs wget https://github.com/aliyun/ossfs/releases/download/v1.80.2/ossfs_1.80.2_ubuntu16.04_amd6 ...

  2. 使用ECS和OSS搭建个人网盘

    体验简介 本场景将提供一台配置了Centos 7.7版本的ECS实例(云服务器)和对象存储OSS实例.通过本教程的操作,您可以基于ECS和OSS快速搭建一个个人网盘. 体验此场景后,可以掌握的知识有: ...

  3. 阿里云ECS使用cloudfs4oss挂载OSS

    cloudfs4oss可以帮我们将OSS直接挂载到ECS上,就像一个目录一样方便访问.使用方法: 1.安装配置环境: yum install libcurl libcurl-devel openssl ...

  4. aliyun挂载oss

    配置 oss 挂载 阿里云 ecs 按照ossfs工具:yum install http://gosspublic.alicdn.com/ossfs/ossfs_1.80.5_centos6.5_x8 ...

  5. 阿里云OSS的Bucket容量大小采集

    #!/usr/bin/env python3 #-*- coding: utf-8 -*- # 获取阿里云云监控中 OSS 中的bucket 的bucket大小 from aliyunsdkcore. ...

  6. 解决阿里云OSS The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint的办法

    以前有一个上海节点的存储包,一直使用正常.最近购买了一个全国的存储包,发现在上传文件的时候有这个问题. 尝试了很多办法,还提交了工单,都没有解决. 最后解决办法如下: 1.在阿里云OSS管理控制台下, ...

  7. 阿里云有奖体验:如何通过ECS挂载NAS文件系统

    实验简介 本实验提供CentOS系统ECS一台和NAS文件服务. NAS基于POSIX文件接口,天然适配原生操作系统,提供共享访问,同时保证数据一致性和锁互斥.它提供了简单的可扩展文件存储以供与ECS ...

  8. ECS挂载数据盘

    1.先在阿里控制台挂载硬盘: 2.df -h 确认没有分区 3.fdisk -l 4.fdisk /dev/xvdb 分区 根据提示m-n-p-1-Enter-Enter-w 5.fdisk -l 查 ...

  9. 阿里云服务器ECS挂载数据盘—linux系统

    参考阿里云官网帮助文档:https://help.aliyun.com/document_detail/25426.html 里面有些步骤说的不是很清楚,初学者可能操作时会遇到问题.通过这篇文档进行进 ...

  10. OSSFS将OSS bucket 挂载到本地文件系统及注意事项

    OSSFS将OSS bucket 挂载到本地文件系统及注意事项 下载ossfs安装包 wget http://docs-aliyun.cn-hangzhou.oss.aliyun-inc.com/as ...

随机推荐

  1. Java IO教程- Java文件

    创建文件 我们可以从中创建一个 File 对象 路径名 父路径名和子路径名 URI(统一资源标识符) 我们可以使用File类的以下构造函数之一创建一个文件: File(String pathname) ...

  2. VSCODE中无法搜索插件的解决办法

    当前我的使用环境是虚拟机, 如果无法搜索插件但是网络连接是正确的极有可能是代理设置的问题. 解决办法如下: ctrl+, 打开设置 这里填写正确的代理设置.

  3. AtCoder Beginner Contest 237 G - Range Sort Query

    原题链接 G - Range Sort Query 思路: \(x\)是固定的,所以考虑将排序维护成0 1串,为\(p_i < x\)为\(0\),那么\(p_i \geq x\)为\(1\), ...

  4. 学生开发者勇担青年使命,用AI守护少数人的“视界”

    本文分享自华为云社区<[先锋开发者云上说]学生开发者勇担青年使命,用AI守护少数人的"视界">,作者:华为云社区精选 . 青年动人之处,在于他们的勇气,和非凡的创造探索 ...

  5. 基于TensorFlow 2与PaddlePaddle 2预测泰坦尼克号旅客生存概率的比较

    ​  目录 1,程序比较 2,训练过程对比: 3,训练结果对比 AI框架经过大浪淘沙之后,目前真正能够完整用于生产.科研.学术的只剩下了谷歌.脸书.百度三家的框架,本文通过一个泰坦尼克号旅客生存概率预 ...

  6. 空间三维模型的编码结构光方法实现:基于EinScan-S软件

      本文介绍基于EinScan-S软件,实现编码结构光方法的空间三维模型重建的具体操作. 目录 1 相关原理 1.1 编码结构光成像原理 1.2 编码结构光编码方式 1.3 编码结构光与侧影轮廓方法比 ...

  7. lua完整学习笔记

    lua注释 -- 单行注释 --[[ 多行注释 ]]-- lua数据结构 nil          无效值与Java的Null类似,但是在条件表示中是false boolean      布尔值,tu ...

  8. Linux笔记01: Linux简介

    1.1 操作系统 计算机系统是由硬件子系统(处理器.内存.硬盘.键盘.鼠标.显示屏等)和软件子系统(如Windows操作系统.Office办公软件等)组成. 操作系统(Operating System ...

  9. net8获取泛微token以及访问api示例

    工作中涉及到调用泛微的场景,官方的示例又臭又长,抽空用NET8简化了写法,为了简化http访问,用了Flurl.Http这个库.在座各位大佬,我们直接就看代码了   using System.Secu ...

  10. SpringBoot整合Swagger2一直弹窗的坑

    问题现象: 我的Swagger配置信息文件如下 package com.qbb.qmall.service.config; import com.google.common.base.Predicat ...