2011-06-01 5 views
2

Ma compréhension est que Jets3t 0.7.4 S3 point de terminaison a été défini de manière statique à S3Service :: setS3EndpointHost. Il n'y avait donc aucun moyen d'utiliser Jets3t pour obtenir/mettre du contenu dans S3 en utilisant différents points de terminaison S3 dans la même application.JetS3t: Amazon S3: comment modifier dynamiquement les points de terminaison

Dans Jets3t 0.7.4 notes de version, il est écrit - « méthodes statiques dépréciés dans S3Service pour générer des URL signées Les nouveaux équivalents de méthode non statique doit être utilisé à partir de maintenant pour éviter la dépendance à une constante de point final VM à l'échelle S3. "

Est-il possible maintenant de modifier dynamiquement les points de terminaison S3? Si oui comment le faire .. existe-t-il une méthode setS3Endpoint disponible?

Répondre

0

Il n'y a pas de telle méthode dans l'API jets3t. Le noeud final est défini dans le fichier Jets3t.properties. Vous pouvez (théoriquement) extraire le fichier Jets3t.properties et le modifier avec une classe auxiliaire en Java, puis créer un nouvel objet s3Service qui, espérons-le, a la nouvelle configuration.

1

Vous pouvez le configurer comme ceci:

private void setS3Endpoint(final String endpoint) { 
     final Jets3tProperties props = Jets3tProperties.getInstance(Constants.JETS3T_PROPERTIES_FILENAME); 
     props.setProperty("s3service.s3-endpoint", endpoint); 
}