У меня есть следующий метод, который позволяет мне загружать файлы в контейнерах на Rackspace CloudFiles:jcloud: Должен ли я хранить экземпляры BlobStoreContext?
/**
* Uploads a file to the storage.
*
* @param f the <code>File</code> which is to be uploaded to the storage.
* @param fileContainer a <code>String</code> representing the container
* which the provided <code>File</code> is to be uploaded to.
* @throws StorageException if an attempt to upload the provided file to
* the storage failed.
*/
public static void upload(File file, String fileContainer) throws StorageException {
if (!file.exists()) {
throw new StorageException("The file '" + file.getName() + "' does not exist.");
}
try {
BlobStoreContext cb = ContextBuilder.newBuilder("cloudfiles-uk")
.credentials(USERNAME, PASSWORD)
.buildView(BlobStoreContext.class);
Blob blob = cb.getBlobStore().blobBuilder(file.getName())
.payload(file)
.build();
cb.getBlobStore().putBlob(fileContainer, blob);
} catch (Exception e) {
throw new StorageException(e);
}
}
Прямо сейчас, я creataing новый контекст каждый раз, когда метод вызывается. Насколько я понимаю, код будет только аутентифицироваться при первом вызове и оттуда использовать ключ, выданный во время первой аутентификации при всех последующих вызовах. Однако, я не уверен, что это правильно? Будет ли я повторно аутентифицироваться, если я выброшу экземпляр BlobStoreContext и создаст новый экземпляр при каждом вызове upload()? Было бы лучше сохранить экземпляр BlobStoreContext?