【发布时间】:2012-11-01 19:07:23
【问题描述】:
使用非官方的Perl binding of the Rackspace Cloud API [Github],我一辈子都无法设置或检索给定对象的元数据。
我可以成功地从云中提取文件,但是当我按照文档中的定义调用 object_metadata 时,我收到一个错误,抱怨 uninitialized value。我可以通过云文件管理器验证元数据中是否为 Status 设置了值。我什至试过检查X-Object-Meta-Status(没有成功)。
相关代码如下:
# authentication
# set $container to pre-made container
my @files = $container->objects(prefix => 'tainted/')->all;
FILE: foreach my $file(@files) {
# throws undefined // have tried capitalized and not, quotes and none
next FILE if $file->object_metadata->{'status'} != '-1';
# download file from object & do stuff with it
# does not update object in cloud (not sure if anything id done locally)
$file->object_metadata({ status => $status });
}
就像我说的,对象已成功检索,我只是无法查看给定文件的元数据。我已经玩过上面的一些变体,但是对新方法的每次测试都会花费带宽(钱!)。任何帮助将不胜感激!
【问题讨论】:
-
元数据中到底有什么?尝试使用Data::Dumper 来检查
$file->object_metadata的结构。 -
print Dumper($file->object_metadata);为每个 $file 输出$VAR1 = {};。 -
我访问了 Rackspace 网站并打开了一个与销售人员聊天的窗口。他向我提供了一个可以用作沙盒的 20 英镑免费试用帐户。我不知道能为您提供多少服务,但我建议您也这样做。
-
非常感谢,@simbabque!这非常有帮助。我会看看他们能为我做些什么。
标签: perl api file rackspace-cloud