apache jackrabbit 实现 webdav 客户端怎么设置主体

apache jackrabbit 实现 webdav 客户端怎么设置主体,第1张

WebDAV 概述

WebDAV(Web Distributed Authoring and Versioning)是一种基于 >

顾名思义,WebDAV 关注的是创作(Authoring)和版本控制(Versioning)的功能,所以它在自己的协议(RFC 2518)里增加了文档属性、资源集合、锁、命名空间等概念和机制。

虽然 WebDAV 的最初是为了方便远程创作和版本管理,但有了以上机制和方法,WebDAV 经常用来和 FTP、SFTP 等网络传输协议进行对比,WebDAV 可以看作是对文件传输协议的一种补充和选择。由于使用的是 >

WebDAV 在实际中已有广泛的应用。服务器方面,如 Apache >

JCR 及 Apache Jackrabbit 简介

JCR 是 Content Repository for Java Technology API 的缩写,译为 Java 内容存储规范,其规范定义在 JSR170 和 JSR283,两者分别定义了 JCR 的 10 和 20 版本。其目的是简化 Java 的数据管理,并希望建立起一种基于内容仓库(Repository)而不是传统数据库(例如 RDBMS)的编码模型。内容仓库的一个典型应是内容管理系统(CMS)。JCR 是内容仓库的抽象,因为实际的内容仓库可以基于数据库,可能基于文件系统或者其他适合的存储机制,例如 WebDAV 仓库。而内容仓库的访问也有多种方式,包括直接访问(如应用程序的本地仓库),或者作为资源来访问(如通过 JNDI 来访问 Java EE 的容器),也可以使用 >

Apache Jackrabbit 是由 Apache Foundation 提供的 JCR 的开源实现。其起源可以追溯到 2002 年的 Apache Jakarta Slide 项目,该项目计划实现 JSR170 定义的内容仓库。随后在 2004 年,关于 JCR 的开源实现成为一个单独的项目,并命名为“Jackrabbit”。关于 Jakarta 和 Slide 项目,最初的 Jakarta 是一个包含 Ant、Maven、JMeter 等著名子项目的集合,Slide 也是其中的一个子项目。Slide 项目的主要内容是内容仓库,其中一个重要功能就是对 WebDAV 的支持,WebDAV 也可以看作是内容仓库的重要基石。但 Slide 项目在 2004 年以后便没有更新,并于 2007 年正式关闭。目前对 WebDAV 的支持主要来自 Jackrabbit 项目,实现 JCR10 的最新版本为 Jackrabbit16,实现 JCR20 的最新版本为 Jackrabbit24。

使用 Jackrabbit 实现 WebDAV 客户端

在进行编码前,只需要在自己的工程中包含 Jackrabbit 的 JAR 文件(例如 jackrabbit-standalone-243jar),并使得可以在代码中成功导入 jackrabbit 库文件的资源。本文以在 Eclipse 开发环境中开发 WebDAV 客户端为例,介绍使用 Jackrabbit 实现 WebDAV 的客户端。如图所示,首先需要在新建的 WebDAV 客户端工程中导入 Jackrabbit JAR 文件。

图 1 导入 Jackrabbit JAR 文件

一般情况下,可以按照图 2 所示的流程来实现 WebDAV 客户端,首先需要建立 >

图 2 实现 WebDAV 客户端

第一步:建立网络连接。

在 java 中建立网络连接要简单许多,只需要创建 >

清单 1 建立 >

>

第二步:调用 DavMethod 方法。

首先需要建立一个 DavMethod 对象,然后用第一步建立的 >

清单 2 调用 DavMethod 对象

// MKCOL method
   DavMethod mkCol = new MkColMethod(">

第三步:获取方法的返回状态。

调用完 WebDAV 的方法后,可以从该方法的对象中获得方法执行的状态信息。例如清单 3 的返回结果可能是“201”,“Created”和“>

清单 3 获取状态码

int statusCode = mkColgetStatusCode();
String statusText = mkColgetStatusText();
StatusLine statusLine = mkColgetStatusLine();

第四步:分析返回值。

通过返回值,我们不仅可以知道方法调用是否成功,还能获取有用的数据进行下一步分析,例如对于一个完整的客户端实现,往往需要首先调用 PROPFIND 方法得到当前目录下的所有文件,然后再决定如何进行下一步 *** 作。

清单 4 获取返回值

// PROPFIND Method
   DavMethod find = new PropFindMethod(">

通过对以上调用方法的使用介绍,我们已经可以调用 WebDAV 的各种方法,读者应该已经可以根据自己的需求开发 WebDAV 客户端了。

WebDAV 环境的的搭建与测试

在开发客户端的时候,往往需要和服务器一起进行调试,本节简要介绍如何搭建 WebDAV 服务器,并对开发的客户端进行了测试和验证。

WebDAV 服务器的搭建

由于 WebDAV 是对 >

配置 >

打开 DAV 功能的注释

# Distributed authoring and versioning (WebDAV)
 Include conf/extra/>

打开加载以下关于 DAV 的模块的注释

LoadModule dav_module modules/mod_davso
LoadModule dav_fs_module modules/mod_dav_fsso
LoadModule dav_lock_module modules/mod_dav_lockso

打开加载以下关于 auth_digest 的注释

LoadModule auth_digest_module modules/mod_auth_digestso

为 admin 用户生成 userpasswd 文件

图 3 运行 htdigest 生成 userpasswd 文件

新建所需目录

例如 D:\Program Files\Apache Software Foundation\Apache22\uploads 等。

重启 >

图 4 重启 >

在搭建 WebDAV 服务器的时候,可以选择其他第三方的 WebDAV 客户端进行验证,例如 BitKinex 等免费工具。另外,在配置 WebDAV 服务器的时候,要注意文件目录的权限问题,例如 userpasswd 文件是否能正确生成。

WebDAV 客户端的测试

在 Eclipse 环境中运行示例代码的输出结果如下所示:

清单 5 客户端记录

mkcol test folder:201 Created
put image file:201 Created
copy image file:201 Created
move image file:201 Created
lock image file:200 OK
unlock image file:204 No Content
Folders and files:
/uploads/test/
/uploads/test/lena2jpg
/uploads/test/lena3jpg
delete test folder:204 No Content

同时在 WebDAV 服务器中的 log 文件中记录了如下信息:

清单 6 服务器日志

127001 - - [25/Sep/2012:16:58:25 +0800] "MKCOL /uploads/test >

说明示例客户端程序和服务器进行了交互,执行并验证了 WebDAV 协议中的方法的使用。

WebDAV 是一个重要的网络通信协议,基于 WebDAV 可以开发出丰富多彩的应用程序,例如云计算、办公自动化、数据仓库、流媒体等。本文首先介绍了 WebDAV、JCR 的概念,并介绍了如何使用 Jackrabbit 实现一个 WebDAV 的客户端,最后验证了该客户端在 WebDAV 服务器上各项基本功能的使用

腾讯极光盒子是远程协助工具,支持远程控制、文件传输、屏幕分享等功能。要远程上传文件到目标设备上,可以按照以下步骤 *** 作:
1 在本地电脑上打开腾讯极光盒子客户端,与目标设备建立远程连接。
2 在腾讯极光盒子客户端中选择“文件管理”选项,会d出一个文件管理器窗口。
3 在文件管理器窗口中,选择“上传文件”或者“上传文件夹”按钮,即可选择需要上传的文件或者文件夹。
4 选择好需要上传的文件或文件夹后,点击“确定”按钮进行上传。
5 等待上传完成后,在目标设备上即可找到上传的文件或者文件夹。
由于网络环境的不同,上传文件的速度会有所不同。在上传大文件或者多个文件时,可能需要耐心等待上传完成。同时,为了保证上传的安全性,建议只在可信任的网络环境下使用腾讯极光盒子进行文件传输。

阿里云盘支持webdav。webdav-aliyundriver是Github上一个开源的项目,顾名思义它实现了阿里云盘的webdav协议。

只需简单的配置就可以让阿里云盘变身为webdav协议的文件服务器,而且兼容性不错,支持群辉Cloud Sync、Rclone、MAC/Windows原生等系统。

使用raidrive把阿里云盘挂载到本地的方法:

1、获取阿里云盘账号的refreshToken。refreshToken,它是一种身份权限验证,当前webdav-aliyundriver仅支持此方式登录获取阿里云盘账户中的资料。

而refreshToken在登录阿里云盘后,F12快捷键打开开发者工具--Application--Local Storage,点击 Local Storage下的aliyundrive。点击token,此时可以看到里面的数据,其中就有refresh_token,把其值复制出来即可。

2、记事本编辑runbat,将其里面的refreshToken替换成自己的,端口默认是8080,你可以更改成其他,其余的选项一般默认即可。

3、运行runbat。

4、支持webdav的挂载工具相当多,例如RaiDrive、NetDrive2。在RaiDrive中,选择Add New Drive,类型选择NAS,协议WebDAV,自定义选择盘符号。设置Address,端口,账号与密码。设置成功后,点击连接按钮即可连接成功。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zz/13449962.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-08-09
下一篇 2023-08-09

发表评论

登录后才能评论

评论列表(0条)

保存