Azure File服务(5): Java开发

使用Java管理Azure文件共享服务

Azure文件共享服务提供了多种方式的访问接口,包括Powershell,.Net, Java, Python等等,本章主要介绍如何使用Java来访问Azure File存储。

  1. Java基本开发环境的搭建,Eclipse的插件安装,IntelliJ IDEA的插件安装,请参考我的文档:

http://cloudapps.blog.51cto.com/3136598/1772092

  1. 关于访问连接串,SDK默认的连接串是指向global Azure的,即"*.core.windows.net",但中国区的Azure的访问的服务URL是".core.chinacloudapi.cn",所以需要在链接字符串中指定EndpointSuffix。
  2. 关于存储的访问协议,默认情况下是https协议,但你也可以指定为http协议,一般建议在Azure内部访问存储的时候使用http,而在外部访问的时候使用https进行加密传输。

    public static final String storageConnectionString =

    "DefaultEndpointsProtocol=http;" +

    "AccountName=mystorageacctfile;" +

    "AccountKey=YOURStorageAccountKey;" +

    "EndpointSuffix=core.chinacloudapi.cn";

    如果需要进行加密传输,修改DefaultEndpointsProtocol=https.

  3. Fileshare的名字命名是有要求的,例如必须全部小写等,否则在Java里面你会看到如下错误:

具体命名规则请参考:https://msdn.microsoft.com/library/azure/dn167011.aspx

  1. 首先需要初始化存储上下文,得到文件访问句柄:

    storageAccount = CloudStorageAccount.parse(storageConnectionString);

    System.out.println(storageAccount.getBlobEndpoint());

    CloudFileClient fileClient = storageAccount.createCloudFileClient();

  2. 创建一个新的文件共享:

    CloudFileShare share = fileClient.getShareReference(myFileShare);

    if (share.createIfNotExists())

    {

    System.out.println("New file share:" + myFileShare +"created!");

    }

  3. 文件共享创建完成后,我们在该文件共享下建立一个目录:

    //Get a reference to the root directory for the share.

    CloudFileDirectory rootDir = share.getRootDirectoryReference();

    //Get a reference to the sampledir directory

    CloudFileDirectory sampleDir = rootDir.getDirectoryReference(mydirectory);

    if (sampleDir.createIfNotExists())

    {

    System.out.println("sampledir created");

    }

    else {

    System.out.println("sampledir already exists");

}

  1. 上传或者下载一个文件共享中的文件,下载文件可以将他通过Outstream写入到本地文件等多种方式,本示例中直接打印出来:

    //upload a test file to the sampledir

    CloudFile cloudFile = sampleDir.getFileReference("hdinsight.publishsettings");

    if(!cloudFile.exists())

    {

    cloudFile.uploadFromFile(testfilePath);

    }

    else

    {

    //Download file if exists

    System.out.println(cloudFile.downloadText());

    }

  2. 以下例子展示了如何删除一个文件,删除一个目录,请注意在删除目录的时候,该目录下必须没有任何文件,否则会报错:

    CloudFile cloudFile = sampleDir.getFileReference(testFilename);

//Delete specified file

if ( cloudFile.deleteIfExists() )

{

System.out.println(testFilename + " was deleted!");

}

//Get a reference to the root directory for the share.

CloudFileDirectory rootDir = share.getRootDirectoryReference();

//Get a reference to the sampledir directory

CloudFileDirectory sampleDir = rootDir.getDirectoryReference(mydirectory);

// Delete the directory

if ( sampleDir.deleteIfExists() )

{

System.out.println("Directory "+ sampleDir +" was deleted!");

}

10.关于在你调用Azure file接口的时候,使用https链接,即将链接字符串中的DefaultEndpointsProtocol设置为https,你可能会碰到如下错误:

即使你使用的是最新的Azure China 的WoSign的证书,也会出现上述问题,具体原因和Azure China没有关系,你懂的:)解决办法请参考我的博文:

http://cloudapps.blog.51cto.com/3136598/1744342

时间: 2024-10-23 09:10:47

Azure File服务(5): Java开发的相关文章

深入解析Microsoft Azure File 服务

Microsoft Azure File Service对大家相对比较陌生,因为这是一个Azure的预览功能,我也是从邮件中得知有这项新的feature,让我感兴趣的是,这个功能可以解决应用程序文件同步的问题. 我总结了几个适用的场景: 依靠文件共享迁移本地应用到Azure VM或云服务 存储共享的应用设置,例如配置文件 存储诊断数据像Log文件等 存储工具和实用工具用来管理和开发Azure VM或者云服务. 当然还有其他的应用场景,这需要我们在实际的应用时去设计.接下来,先解释下什么是Azur

Azure File SMB3.0文件共享服务(1)

Azure Storage File是Azure推出的文件共享服务,目前的版本同时支持SMB 2.1和SMB 3.0协议.文件共享服务非常适合那些希望把自己数据中心中使用文件共享的应用程序,在云端需要多个应用之间交互文件和共享存储的应用,异构架构中的数据交互等场景. 本文主要从如下几个方面介绍Azure文件共享服务: 使用场景 Azure File服务技术指标和限制 使用Powershell创建文件共享 在Windows上使用文件共享服务 在Linux上使用文件共享服务 使用Java访问文件共享

Azure File SMB3.0文件共享服务(5)

? 使用Java管理Azure文件共享服务 ? Azure文件共享服务提供了多种方式的访问接口,包括Powershell,.Net, Java, Python等等,本章主要介绍如何使用Java来访问Azure File存储. ? Java基本开发环境的搭建,Eclipse的插件安装,IntelliJ IDEA的插件安装,请参考我的文档: http://cloudapps.blog.51cto.com/3136598/1772092 关于访问连接串,SDK默认的连接串是指向global Azure

Azure File SMB3.0文件共享服务(4)

在Linux上使用Azure文件共享服务 使用SMB 3.0从用户自己的数据连接到Azure,需要加密连接,但目前的Linux SMB客户端都暂时都不支持,Linux的开源社区正在努力将该功能添加到Linux发行版本中,因此上目前,用户无法在自己的数据中心使用Linux机器直接挂载Azure文件共享服务,也无法跨region使用. 本在本文中测试的都是Azure上的Linux虚拟机,使用Azure的文件共享服务,并且和Azure在同一个地区.中国区可以使用Azure File Storage的L

Java开发WebServices传递pojo提示参数不匹配的问题

webservices服务用Java开发的时候,参数为基本数据类型是没有什么问题的. 但是如果是传递pojo,也就是java对象,可能你会遇到参数不匹配的问题. webservices接口暴露出来以后肯定是一个wsdl文件,看到网上很多文章说"webservices传递pojo的时候,提示参数不匹配,很多人解决方式是把接口和pojo放在一起就好用了.这个其实是表象" This XML file does not appear to have any style information

Azure File

Azure File 服务使用标准 SMB 2.1 协议提供文件共享.Azure 中运行的应用程序现在可以使用熟悉的标准文件系统 API(如 ReadFile 和 WriteFile)在虚拟机之间轻松共享文件.此外,您可同时通过 REST 接口(可支持各种混合应用场景)访问这些文件. Azure Files 采用与 Blob.Table 和 Queue Services 相同的技术构建,这意味着 Azure File 可以利用我们平台中内置的现有可用性.持久性.可伸缩性以及跨地域冗余. How

利用VisualVM监测Azure云服务中的Java应用

在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对程序做出优化,市面上做Java profiling的工具也比较多,比如商业的JProfiler,JClarity等,也有免费的JDK自带的工具,如VisualVM,JConsole,JMC等等,那么当我们将Java应用程序部署到了Azure Cloud Service中,如何利用这些工具做性能监控和

Azure File文件共享(6):使用Python开发

Azure文件共享服务提供了多种方式的访问接口,包括Powershell,.Net, Java, Python等等,本章主要介绍如何使用Python来访问Azure File存储. 关于Python环境的安装,Azure SDK for python的安装配置,Linux和Windows上的模块升级,请参考博客: http://cloudapps.blog.51cto.com/3136598/1772880 首先,导入Azure storage file所需要的模块: from azure.st

Azure File SMB3.0文件共享服务(2)

使用Powershell创建文件共享 Azure的文件存储结构如下所示,最基本的文件存储包含存储账号,文件共享,在文件共享下面你可以建立文件目录,上传文件: 在开始使用Powershell创建文件共享之前,你需要获得Azure的账号,安装powershell,配置你的账号,请参考我以前的博客,在此不再赘述. 首先,创建Azure storage account,需要设置你的storage账号的名称,以及你的存储账号是创建在那个region,比如中国东部: $StorageAccountName=