Pogoplug

作者:Mike Diehl

我确信我不是唯一一个对将家庭照片和家庭电影上传到 Facebook 或 YouTube 等在线服务感到担忧的人。众所周知,一旦某物出现在互联网上,它就失去了我们的控制,谁也不知道它下一步会出现在哪里。另一方面,互联网是与朋友和家人分享媒体的好方法。我们当中技术更精通的人当然可以弄清楚如何在自己控制的服务器上托管媒体,但大多数人需要一个可以插入并“即插即用”的盒子。而这正是 Cloud Engine 的 Pogoplug 所做的。

Pogoplug 是一个 Wi-Fi 路由器大小的盒子,它有一个千兆以太网端口和四个 USB 端口(前面一个,后面三个)。内部是一个运行 Linux 内核版本 2.6.22 的 ARM 处理器——所有这些,而且它是粉红色的!是的,我说的是粉红色。外壳是白色的,带有一个透明的亚克力外壳,饰有粉红色,设备背面有一个电缆管理夹。总的来说,它相当具有 Apple 风格(图 1)。

Pogoplug

图 1. Pogoplug(来自 Cloud Engine 网站)

我的评测样机附带一袋微波爆米花和一张简单的便条,上面写着先去开始爆米花,然后回来按照 Pogoplug 设置说明进行操作。便条上吹嘘 Pogoplug 会在爆米花准备好之前就绪,结果确实如此。一旦我连接了电源、网络和一个我手头碰巧有的 USB 硬盘,我所要做的就是访问 my.pogoplug.com 并输入设备的 ID、我的电子邮件地址和密码。几秒钟后,它就可以使用了。从那时起,我所要做的就是提供我的电子邮件地址和密码来访问该设备。这是大多数人对消费电子产品所期望的简单性。

一旦设备完成启动,它就开始扫描连接的存储设备中的图片、电影和音乐文件。没过多久,我就将媒体上传到设备并使其可供各种朋友和家人使用。此时,这一切都非常直观,尽管绝非复杂。我可以基于目录授予读写或只读访问权限——非常简单。当我授予人们访问权限时,他们会收到一封电子邮件,告知他们如何访问共享媒体。当我的朋友点击超链接时,他们能够预览或下载我提供给他们的各种文件。从他们的角度来看,这只是另一个网页;从我的角度来看,这是一个我控制的服务器。

与 Pogoplug 的所有交互都通过一个网站 my.pogoplug.com 进行。该网站能够访问您的设备(或多个设备),并为您呈现一个易于使用的 Web 界面。您甚至不需要知道设备的 IP 地址(图 2)。在页面中心,您会看到我上传的一些电影和音乐文件的缩略图预览。当您将鼠标悬停在缩略图上时,会出现一个弹出菜单,允许您预览(图 3)、下载或删除文件。在页面左侧,“我的媒体”下方是各种媒体类别。这些链接只是显示设备上所有文件的过滤视图。“显示我的文件”下方,还有其他几种访问设备上媒体文件的方式。也许是我的书呆子本性,但我更喜欢从“我的库”部分直接访问驱动器。在这里,我插入了两个拇指驱动器(图 2 的左中侧)。

Pogoplug

图 2. 通过 my.pogoplug.com 访问 Pogoplug 的 Web 界面

Pogoplug

图 3. 预览图像

页面底部有一排按钮,允许您更改设备显示文件列表的方式,以及允许您上传新文件、创建文件夹以及将文件从一个文件夹复制到另一个文件夹的按钮。还有一个“共享”按钮。当您想要授予其他人访问目录的权限时,可以按下此按钮。

当您单击“共享”按钮时,您会看到一个屏幕,允许您为当前文件夹打开或关闭共享。如果共享已打开,您可以邀请人们访问共享。此外,您还可以查看谁有权访问,以及是完全访问权限还是只读访问权限。此外,您可以在此屏幕上配置 Pogoplug 的社交网络功能。

我的大多数朋友和家人都使用 Facebook 保持联系,因此我很高兴听到 Pogoplug 可以与 Twitter、Facebook 和 MySpace 集成。我决定查看 Facebook 功能。一旦我提供了我的 Facebook 用户名和密码,每当我向共享目录添加文件时,设备都会在我的“墙”上发布一条新闻文章。显然,这将是祖父母们了解所有孙子孙女情况的好方法。

好的,那么它是如何工作的呢?设备启动后,它会通过看起来像基于 TCP 的 VPN 的方式呼叫主服务器。从那时起,设备就能够响应命令,例如“告诉我您正在提供哪些服务”或“删除文件”。重要的是要注意,这是一项免费服务,并且您的文件保留在您的设备上,而不会简单地上传到 Cloud Engine 的服务器。但是,这种架构的一个优点是 Cloud Engine 网站是与您的 Pogoplug 设备(或多个设备)交互的中心点。这也使您(消费者)能够从任何可以与您的 Pogoplug 交互的网页编写 Web 服务请求(稍后我会回到这一点)。

这种架构的阴暗面是云计算可能成为潜在的单点故障。如果 Cloud Engine 倒闭,这个基础设施也将消失。但是,为了减轻这种威胁并消除恐惧,Cloud Engine 已将其源代码树托管,以便在需要时向公众发布。与此同时,Cloud Engine 使用此基础设施来区分其产品与其他类似设备。事实上,Pogoplug 用户论坛上的讨论表明,该基础设施正在积极开发和改进。我从论坛阅读中了解到的是,Cloud Engine 可以将升级推送到设备——这意味着 Pogoplug 基本上是一个托管设备,但所有者保持完全控制。

遗憾的是,该设备未附带原生的 Samba 或 NFS 服务器。该设备的目标用户是那些觉得太多配置难以应对的人。但是,有一个文件系统驱动程序可供下载,可以在 Linux、Windows 和 Mac 上运行。我将其安装在我的 Linux 工作站和我妻子的 Windows 笔记本电脑上,效果非常好。

因此,尽管该设备的设计目的是开箱即用,几乎无需配置,但对于更高级的用户来说,它仍然非常容易破解。但是,您首先必须确定设备的 IP 地址,而这在设备的网站上任何地方都找不到!我不得不询问我的 DHCP 服务器。有了 IP 地址,我就能够ssh以 root 用户身份使用默认密码 ceadmin 登录到机器。这是一个相当安全的配置,因为据推测,该设备将位于您的 NAT 路由器之后,并且无法从外部世界访问。但是,我被告知,在 2010 年 3 月 16 日之后,SSH 将默认关闭,但用户将能够通过 Web 界面启用它。

早些时候,我提到了向 Pogoplug 发送 Web 服务请求的能力。Cloud Engine 的网站记录了如何做到这一点,并提供了一个相当完整的 API,用于与 Pogoplug 交互。稍加阅读,我就可以在几分钟内执行一些基本功能。

首先,您必须通过 service.pogoplug.com 网站进行身份验证。这是通过发送一个具有以下结构的 HTTP GET 请求来完成的

http://service.pogoplug.com/svc/api/
↪loginUser?email=user@example.com&password=supersecret

您可以看到唯一的参数是您的电子邮件地址和您用于访问设备的密码。服务器将回复一个 JavaScript 对象,其中包含各种信息,包括一个 valtoken 字段,其中包含身份验证令牌。您只需在后续请求中包含该令牌,例如

http://service.pogoplug.com/svc/api/
↪listDevices?valtoken=5LfDTCKNZRoi86Ifdd

此请求会生成另一个 JavaScript 对象,详细说明插入到我的设备中的硬件

{"devices":
[{"deviceid"  :"UZHTREWJF52ZMN",
  "type"      :"xce:unknown",
  "name"      :"Pogoplug",
  "version"   :"LINUX POGOPLUG - 2.0.3",
  "flags"     :"0",
  "ownerid"   :"228d65951f3fe1ff6c",
  "owner"     :
      {"userid"      :"228d6fe1ff6c",
       "screenname"  :"user@example.com",
       "email"       :"user@example.com",
       "flags"       :"sawoobe,gv=m,",
       "emails"      :[{"address"    :"user@example.com",
                        "validated"  :"1",
                        "default"    :"0"}],
        "options"     :[{"name"   :"disablehoverprev",
                         "value"  :"1"},
                         {"name"   :
                          "slideshare_4dDxYuUonfJQ"}]},
        "sku"          :{"skuid"  :"3",
                         "oem"    :"Cloud Engines",
                         "name"   :"POGO-TEST",
                         "user"   :"Pogoplug",
                         "terms"  :"0"},
        "terms"        :"0",
        "valstart"     :"0",
        "valend"       :"0",
        "services"     :[{"deviceid"    :"UZHTRETF52ZMN",
                          "serviceid"   :"Yxg9f32P-mcuVzIIZRKRAQ",
                          "sclass"      :"1",
                          "type"        :"xce:plugfs:vfat",
                          "name"        :"KINGSTON",
                          "version"     :"LINUX POGOPLUG - 2.0.3",
                          "online"      :"1",
                          "msgpending"  :"0",
                          "apiurl"      :"http://10.0.1.52:3333/...",
                          "space"       :"1358462976/1999044608",
                          "flags"       :"12288"}]}]}

您可以看到它在 JavaScript 程序中非常可用。我还没有带着编写特定应用程序的眼光查看 API 文档,但它看起来相当完整且文档齐全。

就目前而言,Pogoplug 只是一个简单的文件服务器,但由于 OpenPogo(现在称为 PlugApps),您实际上可以扩展设备的功能。默认情况下,根文件系统以只读方式挂载,但一旦文件系统重新挂载为读写,您可以手动挂载连接的 USB 硬盘。然后,您下载 PlugApps tarball 并将其解压缩到挂载的文件系统上。

一旦安装了 PlugApps,您就可以使用无处不在的 ipkg 包管理器安装其他软件包。从这里开始,很容易想象 Samba、Firefly 或 CUPS 服务器在设备上运行。但是,安装方式的妙处在于它不会覆盖现有的文件系统。这意味着您不会失去 Cloud Engine 基础设施的任何好处。

总的来说,我认为 Pogoplug 是一个很棒的小设备,但它确实有一些缺点。我真的希望能够插入我的数码相机,并让 Pogoplug 将其识别为常规 USB 硬盘并发布我的照片。这将是在一次操作中卸载照片并使其可供朋友和家人使用的好方法。唉,这没有奏效,但这可能更多与我的相机有关,而不是 Pogoplug。当我从相机中取出存储卡并将其放入 USB 读卡器时,它就像魅力一样工作。

就其本身而言,该设备外观非常吸引人。但是,我局域网机柜中的所有设备都是黑色的,我办公室桌子上的大多数设备也是如此。甚至我的娱乐系统也是黑色的。在这些黑色背景下,这款粉红色的 Pogoplug 有点像拇指酸痛一样突出。这让我怀疑为该设备提供不同颜色的外壳有多难。我会立即抢购黑色外壳,尽管我确信其他设计(例如迷彩)可能会很受欢迎。另一方面,我必须承认,它确实是一个很好的谈资。

配置的设计目的是简单,我敢说它实际上可能太简单了。我希望能够为我上传的各种文件关联评论。此外,“电影”、“照片”、“音乐”和“幻灯片”类别有点局限,因为我还有要共享的文档和电子表格。最后,如果能够更好地组织我的音乐收藏,那就非常受欢迎了。

话虽如此,Pogoplug 是一款极其容易设置和使用的设备。这款 130 美元的设备几乎消除了共享媒体、控制访问以及告诉我的朋友和家人我何时上传了新的婴儿照片的所有麻烦。我对该设备的计划是将其塞在我的局域网机柜的角落里,并为家庭照片发布一些共享。我还将为我们的直系亲属发布一个共享,我们将在其中存储家谱数据,以便我的妻子可以与她在该国另一端的父亲合作。我还可能会为我最喜欢的 YouTube 视频设置一个共享。有了 Pogoplug,我的妻子和孩子们可能不再需要直接与我的主服务器交互,但他们仍然可以方便地访问他们想要的东西。

Mike Diehl 是新墨西哥州阿尔伯克基的合同程序员和顾问。Mike 与他的妻子和三个年幼的男孩住在一起,可以通过电子邮件 mdiehl@diehlnet.com 联系。

加载 Disqus 评论