标签: cloudfiles

Ruby on Rails 3:通过Rails将数据流式传输到客户端

我正在开发一个与RackSpace cloudfiles通信的Ruby on Rails应用程序(类似于Amazon S3但缺少某些功能).

由于缺乏每对象访问权限和查询字符串身份验证的可用性,因此必须通过应用程序调解用户下载.

在Rails 2.3中,看起来您可以动态构建响应,如下所示:

# Streams about 180 MB of generated data to the browser.
render :text => proc { |response, output|
  10_000_000.times do |i|
    output.write("This is line #{i}\n")
  end
}
Run Code Online (Sandbox Code Playgroud)

(来自http://api.rubyonrails.org/classes/ActionController/Base.html#M000464)

而不是10_000_000.times...我可以在那里转储我的cloudfiles流生成代码.

麻烦的是,这是我在Rails 3中尝试使用这种技术时得到的输出.

#<Proc:0x000000010989a6e8@/Users/jderiksen/lt/lt-uber/site/app/controllers/prospect_uploads_controller.rb:75>
Run Code Online (Sandbox Code Playgroud)

看起来可能call没有调用proc对象的方法?还有其他想法吗?

streaming ruby-on-rails cloudfiles ruby-on-rails-3

44
推荐指数
5
解决办法
2万
查看次数

如何使用boto将文件从Amazon S3流式传输到Rackspace Cloudfiles?

我正在将文件从S3复制到Cloudfiles,我想避免将文件写入磁盘.Python-Cloudfiles库有一个看起来像我需要的object.stream()调用,但我找不到boto中的等效调用.我希望我能够做到这样的事情:

shutil.copyfileobj(s3Object.stream(),rsObject.stream())
Run Code Online (Sandbox Code Playgroud)

这可能与boto(或我认为任何其他s3库)?

python amazon-s3 rackspace cloudfiles boto

30
推荐指数
5
解决办法
3万
查看次数

缩放存储在S3的图像

我需要将一些网站的图像存储推送到可以无限扩展的服务(S3,CloudFiles等).到目前为止,我们已经能够允许我们的用户使用Python的成像库动态生成自定义缩略图大小,并在Django中提供sorl-thumbnail的帮助.

通过将我们的图像移动到像S3这样的东西,快速创建动态缩略图的能力就会丢失.我们可以:

  1. 通过从S3下载源并在本地创建缩略图
    来缓慢执行:它速度慢且带宽密集
  2. 通过创建一组预先确定的缩略图大小(a'la Flickr)并将它们全部推送到S3
    con来预先做到:它限制了可以生成的大小并存储了大量永远不会被使用的文件
  3. 让浏览器使用img标记上的height/width属性调整大小.
    con:下载大于必要文件的额外带宽

此时#3看起来是一个解决问题的简单方法,但缺点很少.来自该网站的一些快速测试和数据表明,质量没有预期的那么糟糕(我们可以确保保持纵横比).

关于我们可能没有考虑的其他选择或缺点的任何建议?

注意:图像是数码照片,仅用于在网络上显示.尺寸范围从1000到50像素的高度/宽度.

browser image-processing amazon-s3 cloudfiles python-imaging-library

12
推荐指数
1
解决办法
3165
查看次数

如何使用Python将许多文件上传到云文件?

我正在使用cloudfile模块将文件上传到rackspace云文件,使用类似这样的伪代码:

import cloudfiles

username = '---'
api_key = '---'

conn = cloudfiles.get_connection(username, api_key)
testcontainer = conn.create_container('test')

for f in get_filenames():
    obj = testcontainer.create_object(f)
    obj.load_from_filename(f)
Run Code Online (Sandbox Code Playgroud)

我的问题是我要上传很多小文件,这种方式需要太长时间.

埋藏在文档中,我看到有一个类ConnectionPool,据说可以用来并行上传文件.

有人可以说明我如何让这段代码一次上传多个文件?

python multithreading cloudfiles

9
推荐指数
1
解决办法
2072
查看次数

寻找有关将TinyMCE Image Manager与S3或Rackspace CloudFiles集成的技巧

我们正在为所有媒体使用本地文件系统,并将其移至云文件(Rackspace).沮丧的是我们使用ImageManager插件,它似乎严重依赖于执行文件系统命令来生成文件列表等.

您是否有使用TinyMCE并从云存储服务插入图像和资产的经验?

tinymce amazon-s3 cloudfiles

7
推荐指数
0
解决办法
915
查看次数

检查Cloud Files中是否存在对象(PHP API)

我刚开始使用Rackspace Cloud Files的PHP API.到目前为止一切都那么好 - 但我使用它作为一个穷人的内存缓存,存储序列化数据的键/值对.

我的应用程序试图通过其键(API语言中的"名称")使用以下内容获取现有的缓存对象:

$obj = $this->container->get_object($key);
Run Code Online (Sandbox Code Playgroud)

问题是,如果对象不存在,API会抛出致命错误而不是简单地返回false.通过API执行此操作的"正确"方法可能是执行此操作

$objs = $this->container->list_objects();
Run Code Online (Sandbox Code Playgroud)

然后$key在该列表中检查我的值.但是,这似乎比falseget_object请求返回更多的时间/ CPU密集.

有没有办法在云文件中执行"搜索对象"或"检查对象是否存在"?

谢谢

php cloudfiles rackspace-cloud

6
推荐指数
1
解决办法
2973
查看次数

Python中的全局"连接"变量

完整脚本:https://gist.github.com/4476526

有问题的具体代码是

# Cloud Files username & API key
username = ''
key = ''

# Source and destination container names
originContainerName = ''
targetContainerName = ''

...

def cloudConnect():
    global originContainer
    global targetContainer
    global connection
    print "Creating connection"
    connection = cloudfiles.get_connection(username,key,servicenet=True)
    print "-- [DONE]"
    print "Accessing containers"
    originContainer = connection.create_container(originContainerName)
    targetContainer = connection.create_container(targetContainerName)
    print "-- [DONE]"
    return
Run Code Online (Sandbox Code Playgroud)

该脚本工作得非常好,但是我已经在多个地方读过全局变量应该犹豫不决的使用,并且几乎总有一种更好的方法可以在没有它们的情况下做同样的事情.这是真的?如果是这样,我应该如何修复此脚本?对我来说,使用全局连接和容器变量似乎更容易,而不是将这些对象作为参数传递给多个函数.

python cloudfiles python-2.7

3
推荐指数
1
解决办法
1501
查看次数

在Spring MVC应用程序中使用jclouds创建BlobContext时出错

我有一个Spring MVC 4.0.1 Web应用程序,需要将文件上传到Rackspace Cloud Files.我正在使用Apache jClouds来执行此操作.尝试使用以下代码创建BlobStore时:

BlobStoreContext context = ContextBuilder.newBuilder("cloudfiles-us").credentials("username","password").buildView(BlobStoreContext.class);
Run Code Online (Sandbox Code Playgroud)

我得到以下异常:

com.google.inject.CreationException: Guice creation errors:

1) No implementation for com.google.common.base.Supplier<java.lang.String> annotated with @org.jclouds.openstack.swift.TemporaryUrlKey() was bound.
  while locating com.google.common.base.Supplier<java.lang.String> annotated with @org.jclouds.openstack.swift.TemporaryUrlKey()
    for parameter 4 at org.jclouds.openstack.swift.blobstore.SwiftBlobSigner.<init>(SwiftBlobSigner.java:88)
  at org.jclouds.cloudfiles.CloudFilesApiMetadata$CloudFilesTemporaryUrlExtensionModule.bindRequestSigner(CloudFilesApiMetadata.java:101)

2) No implementation for org.jclouds.openstack.swift.CommonSwiftClient was bound.
  while locating org.jclouds.openstack.swift.CommonSwiftClient
    for parameter 4 at org.jclouds.cloudfiles.blobstore.CloudFilesBlobStore.<init>(CloudFilesBlobStore.java:63)
  at org.jclouds.cloudfiles.blobstore.config.CloudFilesBlobStoreContextModule.configure(CloudFilesBlobStoreContextModule.java:64)

3) No implementation for org.jclouds.openstack.swift.CommonSwiftClient was bound.
  while locating org.jclouds.openstack.swift.CommonSwiftClient
    for parameter 0 at org.jclouds.openstack.swift.blobstore.strategy.internal.SequentialMultipartUploadStrategy.<init>(SequentialMultipartUploadStrategy.java:51)
  while locating com.google.inject.Provider<org.jclouds.openstack.swift.blobstore.strategy.internal.MultipartUploadStrategy>
    for parameter 14 at org.jclouds.cloudfiles.blobstore.CloudFilesBlobStore.<init>(CloudFilesBlobStore.java:63)
  at …
Run Code Online (Sandbox Code Playgroud)

java guice cloudfiles guava jclouds

3
推荐指数
1
解决办法
1173
查看次数

Paperclip CloudFiles?

如何将Paperclip与CloudFiles一起使用?我找到了paperclip-cloudfiles,但在描述中它说它可能会被删除,最后一次提交是在2010年.

ruby-on-rails paperclip cloudfiles ruby-on-rails-3

2
推荐指数
1
解决办法
350
查看次数

强制使OpenStack Swift令牌失效

有没有办法强制过期或撤销OpenStack Swift令牌?我正在寻找一些API方法来做到这一点.

Bing/Google搜索没有返回任何有用的内容.

openstack-swift cloudfiles rackspace-cloud oauth-2.0 openstack

2
推荐指数
1
解决办法
578
查看次数

Mosso Python模块

有没有人成功安装Mosso(cloudfiles)python模块?我正在尝试安装它并收到以下错误.

python-cloudfiles-1.3.1]# python setup.py install
running install
running build
running build_py
running install_lib
byte-compiling /usr/lib/python2.3/site-packages/cloudfiles/container.py to container.pyc
  File "/usr/lib/python2.3/site-packages/cloudfiles/container.py", line 74
    @requires_name(InvalidContainerName)
    ^
SyntaxError: invalid syntax
byte-compiling /usr/lib/python2.3/site-packages/cloudfiles/storage_object.py to storage_object.pyc
  File "/usr/lib/python2.3/site-packages/cloudfiles/storage_object.py", line 85
    @requires_name(InvalidObjectName)
    ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

python module mosso cloudfiles

1
推荐指数
1
解决办法
264
查看次数