标签: jclouds

如何更新现有Amazon S3文件的元数据?

我需要更新所有AmazonS3的云文件中的缓存控制头.但是,我无法弄清楚如何使用jclouds API.我正在使用apache jclouds插件.我得到了两个相关的答案:

第一个答案是建议使用SwiftKey Api类,这在grails的jcloud插件中是不可用的.第二个答案是使用AWS java sdk已经有一个grails包装插件https://grails.org/plugin/aws-sdk但它不支持元数据更新.

java grails amazon-s3 amazon-web-services jclouds

25
推荐指数
3
解决办法
2万
查看次数

Hibernate搜索,infinispan,jclouds和Amazon S3 - IllegalArgumentException:bucketId:A96137216.bz2(预期:整数)

我正在尝试使用Hibernate Search来使用在Amazon S3上托管的Lucene索引,但是我得到以下异常:

Exception in thread "LuceneIndexesData-CloudCacheStore-0" java.lang.IllegalArgumentException: bucketId: A96137216.bz2 (expected: integer)
    at org.infinispan.loaders.bucket.Bucket.setBucketId(Bucket.java:84)
    at org.infinispan.loaders.cloud.CloudCacheStore.readFromBlob(CloudCacheStore.java:450)
    at org.infinispan.loaders.cloud.CloudCacheStore.scanBlobForExpiredEntries(CloudCacheStore.java:292)
    at org.infinispan.loaders.cloud.CloudCacheStore.purge(CloudCacheStore.java:284)
    at org.infinispan.loaders.cloud.CloudCacheStore.purgeInternal(CloudCacheStore.java:336)
    at org.infinispan.loaders.AbstractCacheStore$2.run(AbstractCacheStore.java:111)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

在s3中持久化lucene索引的文档有点稀疏但我认为我在正确的轨道上.我正在尝试在我的应用程序中嵌入infinispan,所以我在hibernate.cfg.xml中指定了infinispan XML的路径如下所示

<property name="hibernate.search.default.directory_provider">infinispan</property>
<property name="hibernate.search.infinispan.configuration_resourcename">infinispan-amazons3.xml</property>
<property name="hibernate.search.infinispan.chunk_size">300000000</property>
Run Code Online (Sandbox Code Playgroud)

而我的infinispan-amazons3.xml是:

<infinispan>
    <default>
        <loaders>
            <cloudStore xmlns="urn:infinispan:config:cloud:5.3"
                cloudService="aws-s3"
                identity="user"
                password="password"
                bucketPrefix="bucket">
            </cloudStore>
        </loaders>
    </default>
</infinispan>
Run Code Online (Sandbox Code Playgroud)

我正在使用以下版本(maven pom.xml)

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search</artifactId>
    <version>4.4.4.Final</version>
</dependency>
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-search-infinispan</artifactId>
    <version>4.4.4.Final</version>
</dependency>
<dependency>
    <groupId>org.infinispan</groupId>
    <artifactId>infinispan-cachestore-cloud</artifactId>
    <version>5.3.0.Final</version>
</dependency>        
<dependency>
    <groupId>org.jclouds.provider</groupId>
    <artifactId>aws-s3</artifactId>
    <version>1.4.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

任何有关使用hibernate-search和Amazon S3的帮助都表示赞赏.

提前致谢.

lucene amazon-s3 hibernate-search infinispan jclouds

6
推荐指数
0
解决办法
256
查看次数

云中的Java框架

因此,我试图最终了解基于云的企业应用程序如何工作,以及他们的架构通常是什么样子.假设我使用像亚马逊这样的云提供商.我假设(请纠正我,如果我错了),我将支付1+个虚拟机,根据我的应用程序需要容纳一堆软件.

我对jcloudsTerracotta这样的框架如何融入图片感到困惑.jclouds将自己宣传为" 一个可以帮助您开始使用云的开源库 ",并列出了许多巨大的功能,如果没有有意义的示例,对我来说并不重要.Terracotta自称是一个高规模的集群框架.为什么我需要使用像jclouds这样的东西?我将使用哪些具体的具体方案?

再说一遍,如果我使用亚马逊作为我的云提供商,他们不会已经高度扩展吗?为什么我需要云中的兵马俑?

java cloud terracotta cluster-computing jclouds

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

Rackspace云文件(使用jclouds) - 如何获取容器位置

我使用jclouds作为Rackspace Cloud Files的api.

Api允许我使用BlobStore.createContainerInLocation在不同位置创建容器

现在,拥有已经存在的容器,我该如何获取它的位置?

java rackspace rackspace-cloud jclouds rackspace-cloudfiles

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

创建 JClouds SwiftApi 时出错:无法实例化提供程序 org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata

我有一些用于连接到 JClouds swift 存储容器的代码,该容器在自己的测试区域中运行良好,但是一旦集成到我的项目中,我就会收到错误:

线程“main”中的异常 java.util.ServiceConfigurationError:org.jclouds.apis.ApiMetadata:Provider org.jclouds.openstack.keystone.v2_0.KeystoneApiMetadata 无法实例化:java.lang.IllegalStateException:java.lang.reflect.InitationTargetException

这是在 ContextBuilder 行上失败的代码:

private SwiftApi swiftApi;

public JCloudsConnector(String username, String password, String endpoint) {
      String provider = "openstack-swift";

      Properties overrides = new Properties();
      overrides.setProperty("jclouds.mpu.parallel.degree", "" + Runtime.getRuntime().availableProcessors());

      swiftApi = ContextBuilder.newBuilder(provider)
            .endpoint(endpoint)
            .credentials(username, password)
            .overrides(overrides)
            .buildApi(SwiftApi.class);
}
Run Code Online (Sandbox Code Playgroud)

我使用相同的依赖项(JClouds 版本 1.7.3),因此我无法理解问题可能是什么,因为两者都在同一环境中运行。

java jclouds

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

在Spring Boot应用程序中使用Rackspace时,Apache jclouds java.lang.NoSuchMethodError

我正在尝试将Apache Jclouds集成到我正在处理的Spring Boot应用程序中,以便我可以将文件上传到Rackspace Cloud Files(英国).

我创建了一个我正在创建Bean的类;

import com.google.common.io.ByteSource;
import com.google.common.io.Files;
import org.jclouds.ContextBuilder;
import org.jclouds.io.Payload;
import org.jclouds.io.Payloads;
import org.jclouds.openstack.swift.v1.features.ObjectApi;
import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

/**
 * Class WebStorage
 *
 */
public class WebStorage {

    private final String region = "lon";
    private final String provider = "rackspace-cloudfiles-uk";

    private String username;
    private String apiKey;
    private String container;
    private String url;

    private CloudFilesApi cloudFilesApi;

    public WebStorage(String username, String apiKey, String container, String url) {
        this.username = username;
        this.apiKey = …
Run Code Online (Sandbox Code Playgroud)

java spring jclouds spring-boot

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

Java:如何修复挂起的线程?

请注意:我正在使用JClouds标记这一点,因为如果您阅读了整个问题和随后的评论,我相信这可能是JClouds的一个错误或者是对该库的误用.

我有一个可执行的JAR运行,工作一段时间,完成工作而不会抛出任何错误/异常,然后在它应该退出时永远挂起.我使用VisualVM(关注正在运行的线程)对其进行了分析,并且我还在一个日志语句中进行了打印,main()以便在应用程序挂起的位置(在方法结束时)进行打印.这是我的主要方法的最后一部分:

Set<Thread> threadSet = Thread.getAllStackTraces().keySet();
for(Thread t : threadSet) {
    String daemon = (t.isDaemon()? "Yes" : "No");
    System.out.println("The ${t.getName()} thread is currently running; is it a daemon? ${daemon}.");
}
Run Code Online (Sandbox Code Playgroud)

当我的JAR执行此代码时,我看到以下输出:

The com.google.inject.internal.util.Finalizer thread is currently running; is it a daemon? Yes.
The Signal Dispatcher thread is currently running; is it a daemon? Yes.
The RMI Scheduler(0) thread is currently running; is it a daemon? Yes.
The Attach Listener thread is currently running; is it a daemon? …
Run Code Online (Sandbox Code Playgroud)

java concurrency multithreading deadlock jclouds

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

在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
查看次数

新手/芭蕾舞女演员在运行构建时遇到 gson 问题

我是芭蕾舞女演员的新手。我将平台库作为可执行 jar 导入,这是使用 jclouds 的 openstack swift api 在 java 中的互操作方法调用。

JCLOUDS 存在一个已知问题,即在Spring Boot 应用程序中使用 Rackspace 时,由于高于 2.5 的 gson 版本问题与 jclouds Apache jclouds java.lang.NoSuchMethodError不兼容而无法构建 。

尝试从我的 bal 文件中执行这个 inter op 方法调用时,我遇到了同样的错误,该文件是在芭蕾舞演员构建期间构建的。检查芭蕾舞女演员在项目构建期间创建的 jar 后,发现该 jar 是使用一组预构建的 gson 2.7 依赖项创建的。

有什么办法可以改变这种依赖关系,我也不太清楚芭蕾舞女演员如何在 bal 文件的构建阶段打包所有这些 jar。

这将有助于详细了解调用 ballerina build 时会发生什么。

jclouds ballerina

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

云中的木偶?

是否可以使用Puppet设置,使用JClouds在云上实例化新虚拟机,然后通过Puppet定义和实现其配置(软件堆栈)?

或者Puppet的本质是否存在某些内在因素阻止其在AWS,RackSpace或Heroku等云提供商上的使用?

java cloud puppet rackspace-cloud jclouds

0
推荐指数
2
解决办法
843
查看次数