如果有小伙伴使用微软的blob进行文件管理的话,可能会用到。


文章目录

  • 一 centos安装
    • 1 安装.net core 1.1.1版本
    • 2 安装azcopy
    • 3 一些报错
      • 3.1 但是dotnet版本不够
      • 3.2 libunwind/libicu一直安装不上
    • 4 其他系统azcopy安装
    • 5 python操作blob
  • 二 azcopy使用
    • 2.1 使用 AzCopy 和 Blob 存储传输数据
    • 2.2 相关报错

一 centos安装

之前在centos参考的是:CentOS 7安装Azcopy

1 安装.net core 1.1.1版本

.net core 1.1.1的下载信息在github上:

https://github.com/dotnet/core/blob/master/release-notes/download-archives/1.1.1-download.md

在下载安装前,先装两个库:
yum install libunwind libicu
然后下载.net core的包:

curl -sSL -o dotnet.tar.gz https://go.microsoft.com/fwlink/?LinkID=843420

下载后解压到制定目录:

mkdir -p /opt/dotnet && tar zxf dotnet.tar.gz -C /opt/dotnet
ln -s /opt/dotnet/dotnet /usr/local/bin

2 安装azcopy

下载azcopy的包:

wget -O azcopy.tar.gz https://aka.ms/downloadazcopyprlinux

解压:

tar -xf azcopy.tar.gz

安装:

./install.sh

安装完成后,可以运行azcopy:

[root@hwmig01 ~]# azcopy
------------------------------------------------------------------------------
azcopy 6.0.0-netcorepreview Copyright (c) 2017 Microsoft Corp. All Rights Reserved.
------------------------------------------------------------------------------
# azcopy is designed for high-performance uploading, downloading, and copying
data to and from Microsoft Azure Blob, and File storage.# Command Line Usage:
azcopy --source <source> --destination <destination> [options]# Options:
[--source-key] [--dest-key] [--source-sas] [--dest-sas] [--verbose] [--resume]
[--config-file] [--quiet] [--parallel-level] [--source-type] [--dest-type]
[--recursive] [--include] [--check-md5] [--dry-run] [--preserve-last-modified-time]
[--exclude-newer] [--exclude-older] [--sync-copy] [--set-content-type] [--blob-type]
[--delimiter] [--include-snapshot]------------------------------------------------------------------------------
For azcopy command-line help, type one of the following commands:
# Detailed command-line help for azcopy --- azcopy --help
# Detailed help for any azcopy option --- azcopy --help source-key
# Command line samples --- azcopy --help sample
You can learn more about azcopy at http://aka.ms/azcopy.
------------------------------------------------------------------------------

3 一些报错

3.1 但是dotnet版本不够

会报错dotnet版本不够,需要2.x以上
那么就需要重新安装一下:https://github.com/dotnet/core/blob/master/release-notes/download-archives/2.0.0-download.md

步骤:
安装 依赖项:

Ubuntu 16.04 and Linux Mint 18

curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-xenial-prod xenial main" > /etc/apt/sources.list.d/dotnetdev.list'

Fedora, CentOS and Oracle Linux

sudo yum update
sudo yum install dotnet-sdk-2.0.0

其中,sudo yum update小心使用,之前笔者的docker重启了。。

3.2 libunwind/libicu一直安装不上

一直报错:

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package libunwind

apt-get update之后也找不到,后面在2.0文档的方法就可以了

4 其他系统azcopy安装

微软官网:
https://docs.microsoft.com/en-us/azure/storage/common/storage-use-azcopy-v10

如果是window下载:

5 python操作blob

参考:Python操作Azure Storage Blob经验
安装 Azure Storage SDK for Python
官方python操作文档:https://azure.github.io/azure-sdk/python_introduction.html

默认已安装好Python,已拥有Azure存储账号;

pip install azure-storage-blob

其中:

block_blob_service = BlockBlobService(account_name = 'accountname', sas_token= '连接字符串')

使用经验:代码应尽可能不放置密钥,而是使用账号+SAS(shared access signature)的方式;官方文档的SDK说明都是使用账号+密钥的连接字符串方式,其实听危险的。应该为不同的容器获取不同的SAS,设置合理的过期时间和操作权限,做好管理工作;

上传文件:
接下来我们要把本地的文件上传到刚才创建的 Blob Container 中。Azure SDK 为我们提供了下面四个方法:

create_blob_from_path #上传指定路径的文件。
create_blob_from_stream #把一个数据流中的内容上传。
create_blob_from_bytes #上传一个 bype 数组。
create_blob_from_text #使用特定的编码格式上传字符串。

是的,你没有看错,所有方法的名字中都没有 upload 字眼,而是使用了 create。这也说明上传文件的本质是在云端创建一个 Blob 对象。

from azure.storage.blob import BlockBlobService
from azure.storage.blob import ContentSettingsmystoragename = "xxxx"
mystoragekey = "yyyy"
blob_service = BlockBlobService(account_name=mystoragename, account_key=mystoragekey)blob_service.create_blob_from_path('nickcon','myblobcortana.jpg','cortana-wallpaper.jpg',content_settings=ContentSettings(content_type='image/jpg'))

这次我们引入了类型 ContentSettings,主要是指定文件的类型。注意 create_blob_from_path 方法的第二个参数,我们需要为新的 blob 对象指定一个名字。第一个参数是目标 Container, 第三个参数是要上传的本地文件路径。执行上面的脚本,会把本地的一张壁纸 cortana-wallpaper.jpg 上传到 Azure Blob Container 中:

在 Container 中创建的 Blob 对象的名称已经不是源文件的名称了,而是我们指定的 myblobcortana.jpg。


二 azcopy使用

2.1 使用 AzCopy 和 Blob 存储传输数据

官网:https://docs.microsoft.com/zh-cn/azure/storage/common/storage-use-azcopy-blobs


几个参数(文档):

azcopy \--source "aaa/" \--destination "link" \--recursive

recursive代表递归,可以遍历下面的所有文件,需要包含 --recursive 选项才能传输 目录中的所有文件。

还有的人有一个resume

azcopy \--source /mnt/myfiles \--destination https://myaccount.blob.core.windows.net/mycontainer \--dest-key key \--resume "/mnt/myjournal"

please use --resume option to specify a custom location for the journal file.

2.2 相关报错

[2020/08/04 21:38:23][ERROR] An error occurred while reading the restart journal from "/root/Microsoft/Azure/AzCopy". Detailed error: The process cannot access the file '/root/Microsoft/Azure/AzCopy/AzCopyCheckpoint.jnl' because it is being used by another process.

这边遇到了,有几个教程说:
https://joymonscode.blogspot.com/2017/10/running-multiple-copies-of-azcopy.html

An error occurred while reading the restart journal from "C:\Users\<user name>\AppData\Local\Microsoft\Azure\AzCopy". Detailed error: The process cannot access the file 'C:\Users\<user name>\AppData\Local\Microsoft\Azure\AzCopy\AzCopyCheckpoint.jnl' because it is being used by another process.The error is pretty much clear. AzCopy keeps a journal file for resume functionality and if we don't specify the journal file location in command it uses default location and when second AzCopy starts it cannot read journal file.The fix is to specify the location for .jnl. AzCopy Command goes as follows
AzCopy /Source:c:\temp\source /Dest:https://<storage account>.blob.core.windows.net/test /DestSAS:"<SAS>" /pattern:"" /s /z:<unique folder for azcopy command>If we are running AzCopy from the command window it is easy to find out. But, if AzCopy is invoked from applications (PowerShell or .Net) in parallel it is difficult to find out because we might have disabled all the messages using /y. AzCopy has /v: switch which redirect the logs to a file. That will help to troubleshoot.

笔者直接来到/root/Microsoft/Azure/AzCopy/AzCopyCheckpoint.jnl',删掉了这个,就可以了。。。

linux ubuntu系统安装dotnet / Azcopy相关推荐

  1. 阿里linux安装mysql_阿里云Linux Ubuntu系统安装mysql完整过程

    1.下载mysql包 2.tar解压 [root@localhost /]#tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz 3.移动到/usr/ ...

  2. linux ubuntu系统安装及卸载oracle xe11.2.0

    最近公司对盗版很忌讳,所以都换上免费的了,培训中心的操作系统选择ubuntu,oracle换成xe版的了,对于oracle xe在ubuntu 12.0.4上的安装也是小折腾了一把,毕竟oracle对 ...

  3. oppo手机刷linux,Ubuntu手机系统介绍及Ubuntu刷机教程分享

    Ubuntu是知名的Linux操作系统,2013宣布要做手机系统之后吸引到了不少的注意力,虽然有一部分来自开发者,但相信更大的一部分是来自刷机爱好者.此前就有消息称Ubuntu版手机ROM将会在这几天 ...

  4. 刷recovery运行linux,Ubuntu 手机版刷机简明教程(通过 recovery 刷机)【更新刷机体验视频】...

    教程参考来源见文末链接.官方教程需使用Linux Ubuntu系统安装开发环境后刷机,比较繁琐,以下方法只需要 recovery 环境,刷依次两枚 Zip 文件即可.前提是你的手机或平板在支持硬件列表 ...

  5. Linux Ubuntu 18.04 LTS安装指南

    Linux Ubuntu 18.04 LTS安装指南 最近在倒腾Linux, 写一个安装指南, 以后备用. 1. Linux Ubuntu系统安装 下载Linux Ubuntu 18.04 LTS 版 ...

  6. 虚拟机和Linux操作系统安装教程【图文并茂】

    虚拟机和Linux操作系统安装教程[图文并茂] [1]Linux简介 [2]Ubuntu [3]APT软件管理器 [4]安装命令 [5]卸载命令 [6]修复APT管理器 [7]自动卸载一些已经无用的软 ...

  7. ubuntu系统虚拟机linux系统,基于虚拟机的Linux操作系统安装(Ubuntu

    <基于虚拟机的Linux操作系统安装(Ubuntu>由会员分享,可在线阅读,更多相关<基于虚拟机的Linux操作系统安装(Ubuntu(13页珍藏版)>请在人人文库网上搜索. ...

  8. 新买的服务器怎么安装Linux,买了新服务器,如何从头开始配置?Ubuntu系统安装+新建用户名+挂...

    买了新服务器,如何从头开始配置?Ubuntu系统安装+新建用户名+挂 买了新服务器,如何从头开始配置?Ubuntu系统安装+新建用户名+挂载硬盘+nvidia安装+cuda安装+cudnn安装+ana ...

  9. Windows重装系统+虚拟机virtuabox安装+ubuntu系统安装+linux环境下安装fsl 一条龙(步步亲测有效)

    Windows重装系统+虚拟机virtuabox安装+ubuntu系统安装+linux环境下安装fsl 一条龙 零:综述 一.windows10系统的安装 1.准备工作 2.制作启动盘 3.修改启动设 ...

最新文章

  1. CUDA Samples: ripple
  2. caffe data层_Caffe 学习:Eltwise层
  3. python3.5 mysql 库_Python 3.5 连接Mysql数据库(pymysql 方式)
  4. 不要说自己没什么兴趣,也不要说自己兴趣很广泛,最好能具体到哪个方面,顺便提一下你最近看的一本该方面的书,有什么收获(转)...
  5. 包r语言_R语言代码共享:制作R包
  6. Windows Mobile系统弹出输入法时,自动调整窗口显示
  7. 中班机器人教室设计方案_奇思妙想一起玩,机器人来了安格利亚东郡生态幼儿园亲子活动...
  8. springboot entity date_SpringBoot+JWT实战(附源码)
  9. canvas笔记-使用canvas画圆及点阵的使用
  10. C语言const的用法
  11. 大数据可视化要避免的常见错误
  12. HTRAN 2.4终极使用
  13. 面试今日头条Android开发,结束时我问了面试官是否有女朋友,结果你猜?
  14. php文字怎么居中,PHP图片文字合成居中
  15. 为什么证券投资是世界上最难成功的行业
  16. 电脑右下角没有看到小喇叭图标了该怎么办
  17. FC光钎通道交换机,同行性价比超高
  18. jenkins配置360加固脚本(python版)
  19. 网易互联网(网易严选)测试开发工程师
  20. 在Windows环境下编译VPX

热门文章

  1. 《Applying Deep Learning to Answer Selection: A Study And an Open Task》文章理解小结
  2. 一个back propagation的例子
  3. 步步为营-92-空格变成问号的怪问题
  4. 算法复习——数位dp(不要62HUD2089)
  5. 【Python】keras使用Lenet5识别mnist
  6. BGP多出口多宿主实验
  7. paper 108:系统学习数字图像处理之图像复原与重建
  8. EmEditor正则表达式例子
  9. 疯狂连连看之开发界面布局
  10. Q95:纹理映射(Texture Mapping)(3)——Triangle Meshes