blob: 4d2c43a740204ee6db4b84c020d06aaa4f30b619 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HdfsBlobStore (Storm 2.4.0 API)</title>
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="HdfsBlobStore (Storm 2.4.0 API)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":10,"i3":10,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HdfsBlobStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.html" title="class in org.apache.storm.hdfs.blobstore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/storm/hdfs/blobstore/HdfsBlobStore.html" target="_top">Frames</a></li>
<li><a href="HdfsBlobStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.storm.blobstore.BlobStore">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.blobstore.BlobStore">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.storm.hdfs.blobstore</div>
<h2 title="Class HdfsBlobStore" class="title">Class HdfsBlobStore</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">org.apache.storm.blobstore.BlobStore</a></li>
<li>
<ul class="inheritance">
<li>org.apache.storm.hdfs.blobstore.HdfsBlobStore</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/AutoCloseable.html?is-external=true" title="class or interface in java.lang">AutoCloseable</a>, <a href="../../../../../org/apache/storm/daemon/Shutdownable.html" title="interface in org.apache.storm.daemon">Shutdownable</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">HdfsBlobStore</span>
extends <a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></pre>
<div class="block"><p>Provides a HDFS file system backed blob store implementation. Note that this provides an api for having HDFS be the backing store for the blobstore, it is not a service/daemon.</p><p><p>We currently have NIMBUS_ADMINS and SUPERVISOR_ADMINS configuration. NIMBUS_ADMINS are given READ, WRITE and ADMIN access whereas the SUPERVISOR_ADMINS are given READ access in order to read and download the blobs form the nimbus.</p><p><p>The ACLs for the blob store are validated against whether the subject is a NIMBUS_ADMIN, SUPERVISOR_ADMIN or USER who has read, write or admin privileges in order to perform respective operations on the blob.</p><p><p>For hdfs blob store 1. The USER interacts with nimbus to upload and access blobs through NimbusBlobStore Client API. Here, unlike local blob store which stores the blobs locally, the nimbus talks to HDFS to upload the blobs. 2. The USER sets the ACLs, and the blob access is validated against these ACLs. 3. The SUPERVISOR interacts with nimbus through HdfsClientBlobStore to download the blobs. Here, unlike local blob store the supervisor interacts with HDFS directly to download the blobs. The call to HdfsBlobStore is made as a &ldquo;null&rdquo; subject. The blobstore gets the hadoop user and validates permissions for the supervisor.</p></div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ======== NESTED CLASS SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="nested.class.summary">
<!-- -->
</a>
<h3>Nested Class Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="nested.classes.inherited.from.class.org.apache.storm.blobstore.BlobStore">
<!-- -->
</a>
<h3>Nested classes/interfaces inherited from class&nbsp;org.apache.storm.blobstore.<a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></h3>
<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.BlobStoreFileInputStream.html" title="class in org.apache.storm.blobstore">BlobStore.BlobStoreFileInputStream</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.BlobStoreFileOutputStream.html" title="class in org.apache.storm.blobstore">BlobStore.BlobStoreFileOutputStream</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.KeyTranslationIterator.html" title="class in org.apache.storm.blobstore">BlobStore.KeyTranslationIterator</a></code></li>
</ul>
</li>
</ul>
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.apache.storm.blobstore.BlobStore">
<!-- -->
</a>
<h3>Fields inherited from class&nbsp;org.apache.storm.blobstore.<a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></h3>
<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#BASE_BLOBS_DIR_NAME">BASE_BLOBS_DIR_NAME</a></code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#HdfsBlobStore--">HdfsBlobStore</a></span>()</code>&nbsp;</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#blobExists-java.lang.String-javax.security.auth.Subject-">blobExists</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Checks if a blob exists.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/storm/blobstore/AtomicOutputStream.html" title="class in org.apache.storm.blobstore">AtomicOutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#createBlob-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">createBlob</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Creates the blob.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#deleteBlob-java.lang.String-javax.security.auth.Subject-">deleteBlob</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Deletes the blob data and metadata.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#fullCleanup-long-">fullCleanup</a></span>(long&nbsp;age)</code>&nbsp;</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/storm/blobstore/InputStreamWithMeta.html" title="class in org.apache.storm.blobstore">InputStreamWithMeta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#getBlob-java.lang.String-javax.security.auth.Subject-">getBlob</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Gets the InputStream to read the blob details.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/apache/storm/generated/ReadableBlobMeta.html" title="class in org.apache.storm.generated">ReadableBlobMeta</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#getBlobMeta-java.lang.String-javax.security.auth.Subject-">getBlobMeta</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Gets the current version of metadata for a blob to be viewed by the user or downloaded by the supervisor.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#getBlobReplication-java.lang.String-javax.security.auth.Subject-">getBlobReplication</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Gets the replication factor of the blob.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#getLastBlobUpdateTime--">getLastBlobUpdateTime</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#listKeys--">listKeys</a></span>()</code>
<div class="block">Returns an iterator with all the list of keys currently available on the blob store.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#prepare-java.util.Map-java.lang.String-org.apache.storm.nimbus.NimbusInfo-org.apache.storm.nimbus.ILeaderElector-">prepare</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;overrideBase,
<a href="../../../../../org/apache/storm/nimbus/NimbusInfo.html" title="class in org.apache.storm.nimbus">NimbusInfo</a>&nbsp;nimbusInfo,
<a href="../../../../../org/apache/storm/nimbus/ILeaderElector.html" title="interface in org.apache.storm.nimbus">ILeaderElector</a>&nbsp;leaderElector)</code>
<div class="block">Allows us to initialize the blob store.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#prepareInternal-java.util.Map-java.lang.String-org.apache.hadoop.conf.Configuration-">prepareInternal</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;overrideBase,
org.apache.hadoop.conf.Configuration&nbsp;hadoopConf)</code>
<div class="block">Allow a Hadoop Configuration to be passed for testing.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#setBlobMeta-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">setBlobMeta</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Sets the metadata with renewed acls for the blob.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#setLeaderElector-org.apache.storm.nimbus.ILeaderElector-">setLeaderElector</a></span>(<a href="../../../../../org/apache/storm/nimbus/ILeaderElector.html" title="interface in org.apache.storm.nimbus">ILeaderElector</a>&nbsp;leaderElector)</code>
<div class="block">Sets leader elector (only used by LocalFsBlobStore to help sync blobs between Nimbi.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#shutdown--">shutdown</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/storm/blobstore/AtomicOutputStream.html" title="class in org.apache.storm.blobstore">AtomicOutputStream</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#updateBlob-java.lang.String-javax.security.auth.Subject-">updateBlob</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Updates the blob data.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#updateBlobReplication-java.lang.String-int-javax.security.auth.Subject-">updateBlobReplication</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
int&nbsp;replication,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)</code>
<div class="block">Modifies the replication factor of the blob.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#updateLastBlobUpdateTime--">updateLastBlobUpdateTime</a></span>()</code>
<div class="block">Updates the last update time of existing blobs in the blobstore to the current time.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#validateBlobUpdateTime--">validateBlobUpdateTime</a></span>()</code>
<div class="block">Validates that the blob update time of the blobstore is up to date with the current existing blobs.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStore.html#writeMetadata-java.lang.String-org.apache.storm.generated.SettableBlobMeta-">writeMetadata</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta)</code>&nbsp;</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.apache.storm.blobstore.BlobStore">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;org.apache.storm.blobstore.<a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></h3>
<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#close--">close</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#createBlob-java.lang.String-byte:A-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">createBlob</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#createBlob-java.lang.String-java.io.InputStream-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">createBlob</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#filterAndListKeys-org.apache.storm.blobstore.KeyFilter-">filterAndListKeys</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#readBlob-java.lang.String-javax.security.auth.Subject-">readBlob</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#readBlobTo-java.lang.String-java.io.OutputStream-javax.security.auth.Subject-">readBlobTo</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#startSyncBlobs--">startSyncBlobs</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#storedTopoIds--">storedTopoIds</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateBlob-java.lang.String-byte:A-javax.security.auth.Subject-">updateBlob</a>, <a href="../../../../../org/apache/storm/blobstore/BlobStore.html#validateKey-java.lang.String-">validateKey</a></code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="HdfsBlobStore--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>HdfsBlobStore</h4>
<pre>public&nbsp;HdfsBlobStore()</pre>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="prepare-java.util.Map-java.lang.String-org.apache.storm.nimbus.NimbusInfo-org.apache.storm.nimbus.ILeaderElector-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepare</h4>
<pre>public&nbsp;void&nbsp;prepare(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;overrideBase,
<a href="../../../../../org/apache/storm/nimbus/NimbusInfo.html" title="class in org.apache.storm.nimbus">NimbusInfo</a>&nbsp;nimbusInfo,
<a href="../../../../../org/apache/storm/nimbus/ILeaderElector.html" title="interface in org.apache.storm.nimbus">ILeaderElector</a>&nbsp;leaderElector)</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#prepare-java.util.Map-java.lang.String-org.apache.storm.nimbus.NimbusInfo-org.apache.storm.nimbus.ILeaderElector-">BlobStore</a></code></span></div>
<div class="block"><p>Allows us to initialize the blob store.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#prepare-java.util.Map-java.lang.String-org.apache.storm.nimbus.NimbusInfo-org.apache.storm.nimbus.ILeaderElector-">prepare</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>conf</code> - The storm configuration</dd>
<dd><code>overrideBase</code> - The directory path to store the blobs</dd>
<dd><code>nimbusInfo</code> - Contains the nimbus host, port and leadership information</dd>
</dl>
</li>
</ul>
<a name="prepareInternal-java.util.Map-java.lang.String-org.apache.hadoop.conf.Configuration-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>prepareInternal</h4>
<pre>protected&nbsp;void&nbsp;prepareInternal(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&gt;&nbsp;conf,
<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;overrideBase,
org.apache.hadoop.conf.Configuration&nbsp;hadoopConf)</pre>
<div class="block"><p>Allow a Hadoop Configuration to be passed for testing. If it&rsquo;s null then the hadoop configs must be in your classpath.</p></div>
</li>
</ul>
<a name="createBlob-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createBlob</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/storm/blobstore/AtomicOutputStream.html" title="class in org.apache.storm.blobstore">AtomicOutputStream</a>&nbsp;createBlob(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyAlreadyExistsException.html" title="class in org.apache.storm.generated">KeyAlreadyExistsException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#createBlob-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Creates the blob.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#createBlob-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">createBlob</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>meta</code> - Metadata which contains the acls information</dd>
<dd><code>who</code> - Is the subject creating the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AtomicOutputStream returns a stream into which the data can be written</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyAlreadyExistsException.html" title="class in org.apache.storm.generated">KeyAlreadyExistsException</a></code></dd>
</dl>
</li>
</ul>
<a name="updateBlob-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateBlob</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/storm/blobstore/AtomicOutputStream.html" title="class in org.apache.storm.blobstore">AtomicOutputStream</a>&nbsp;updateBlob(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateBlob-java.lang.String-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Updates the blob data.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateBlob-java.lang.String-javax.security.auth.Subject-">updateBlob</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>who</code> - Is the subject having the write privilege for the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AtomicOutputStream returns a stream into which the data can be written</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getBlobMeta-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlobMeta</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/storm/generated/ReadableBlobMeta.html" title="class in org.apache.storm.generated">ReadableBlobMeta</a>&nbsp;getBlobMeta(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlobMeta-java.lang.String-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Gets the current version of metadata for a blob to be viewed by the user or downloaded by the supervisor.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlobMeta-java.lang.String-javax.security.auth.Subject-">getBlobMeta</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>who</code> - Is the subject having the read privilege for the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>AtomicOutputStream returns a stream into which the data can be written</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="setLeaderElector-org.apache.storm.nimbus.ILeaderElector-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLeaderElector</h4>
<pre>public&nbsp;void&nbsp;setLeaderElector(<a href="../../../../../org/apache/storm/nimbus/ILeaderElector.html" title="interface in org.apache.storm.nimbus">ILeaderElector</a>&nbsp;leaderElector)</pre>
<div class="block"><p>Sets leader elector (only used by LocalFsBlobStore to help sync blobs between Nimbi.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#setLeaderElector-org.apache.storm.nimbus.ILeaderElector-">setLeaderElector</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>leaderElector</code> - the leader elector</dd>
</dl>
</li>
</ul>
<a name="setBlobMeta-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBlobMeta</h4>
<pre>public&nbsp;void&nbsp;setBlobMeta(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#setBlobMeta-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Sets the metadata with renewed acls for the blob.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#setBlobMeta-java.lang.String-org.apache.storm.generated.SettableBlobMeta-javax.security.auth.Subject-">setBlobMeta</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>meta</code> - Metadata which contains the updated acls information</dd>
<dd><code>who</code> - Is the subject having the write privilege for the blob</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="deleteBlob-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>deleteBlob</h4>
<pre>public&nbsp;void&nbsp;deleteBlob(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#deleteBlob-java.lang.String-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Deletes the blob data and metadata.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#deleteBlob-java.lang.String-javax.security.auth.Subject-">deleteBlob</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>who</code> - Is the subject having write privilege for the blob</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="getBlob-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlob</h4>
<pre>public&nbsp;<a href="../../../../../org/apache/storm/blobstore/InputStreamWithMeta.html" title="class in org.apache.storm.blobstore">InputStreamWithMeta</a>&nbsp;getBlob(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlob-java.lang.String-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Gets the InputStream to read the blob details.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlob-java.lang.String-javax.security.auth.Subject-">getBlob</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>who</code> - Is the subject having the read privilege for the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>InputStreamWithMeta has the additional file length and version information</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="blobExists-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>blobExists</h4>
<pre>public&nbsp;boolean&nbsp;blobExists(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></pre>
<div class="block"><p>Checks if a blob exists.</p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - blobstore key</dd>
<dd><code>who</code> - subject</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code> - if authorization is failed</dd>
</dl>
</li>
</ul>
<a name="listKeys--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>listKeys</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Iterator.html?is-external=true" title="class or interface in java.util">Iterator</a>&lt;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&gt;&nbsp;listKeys()</pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#listKeys--">BlobStore</a></code></span></div>
<div class="block"><p>Returns an iterator with all the list of keys currently available on the blob store.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#listKeys--">listKeys</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>Iterator&lt;String&gt;</code></dd>
</dl>
</li>
</ul>
<a name="shutdown--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>shutdown</h4>
<pre>public&nbsp;void&nbsp;shutdown()</pre>
</li>
</ul>
<a name="getBlobReplication-java.lang.String-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBlobReplication</h4>
<pre>public&nbsp;int&nbsp;getBlobReplication(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlobReplication-java.lang.String-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Gets the replication factor of the blob.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#getBlobReplication-java.lang.String-javax.security.auth.Subject-">getBlobReplication</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>who</code> - Is the subject having the read privilege for the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>BlobReplication object containing the replication factor for the blob</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="updateBlobReplication-java.lang.String-int-javax.security.auth.Subject-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateBlobReplication</h4>
<pre>public&nbsp;int&nbsp;updateBlobReplication(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
int&nbsp;replication,
<a href="https://docs.oracle.com/javase/8/docs/api/javax/security/auth/Subject.html?is-external=true" title="class or interface in javax.security.auth">Subject</a>&nbsp;who)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateBlobReplication-java.lang.String-int-javax.security.auth.Subject-">BlobStore</a></code></span></div>
<div class="block"><p>Modifies the replication factor of the blob.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateBlobReplication-java.lang.String-int-javax.security.auth.Subject-">updateBlobReplication</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key for the blob</dd>
<dd><code>replication</code> - The replication factor the blob has to be set</dd>
<dd><code>who</code> - Is the subject having the update privilege for the blob</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>BlobReplication object containing the updated replication factor for the blob</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="writeMetadata-java.lang.String-org.apache.storm.generated.SettableBlobMeta-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>writeMetadata</h4>
<pre>public&nbsp;void&nbsp;writeMetadata(<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;key,
<a href="../../../../../org/apache/storm/generated/SettableBlobMeta.html" title="class in org.apache.storm.generated">SettableBlobMeta</a>&nbsp;meta)
throws <a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a>,
<a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
<dd><code><a href="../../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="fullCleanup-long-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>fullCleanup</h4>
<pre>public&nbsp;void&nbsp;fullCleanup(long&nbsp;age)
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="getLastBlobUpdateTime--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLastBlobUpdateTime</h4>
<pre>public&nbsp;long&nbsp;getLastBlobUpdateTime()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<dl>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code></dd>
</dl>
</li>
</ul>
<a name="updateLastBlobUpdateTime--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>updateLastBlobUpdateTime</h4>
<pre>public&nbsp;void&nbsp;updateLastBlobUpdateTime()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateLastBlobUpdateTime--">BlobStore</a></code></span></div>
<div class="block"><p>Updates the last update time of existing blobs in the blobstore to the current time.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#updateLastBlobUpdateTime--">updateLastBlobUpdateTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on any error</dd>
</dl>
</li>
</ul>
<a name="validateBlobUpdateTime--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>validateBlobUpdateTime</h4>
<pre>public&nbsp;void&nbsp;validateBlobUpdateTime()
throws <a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#validateBlobUpdateTime--">BlobStore</a></code></span></div>
<div class="block"><p>Validates that the blob update time of the blobstore is up to date with the current existing blobs.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html#validateBlobUpdateTime--">validateBlobUpdateTime</a></code>&nbsp;in class&nbsp;<code><a href="../../../../../org/apache/storm/blobstore/BlobStore.html" title="class in org.apache.storm.blobstore">BlobStore</a></code></dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/io/IOException.html?is-external=true" title="class or interface in java.io">IOException</a></code> - on any error</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/HdfsBlobStore.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage"><script type="text/javascript" src="../../../../../highlight.pack.js"></script>
<script type="text/javascript"><!--
hljs.initHighlightingOnLoad();
//--></script></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/storm/hdfs/blobstore/HdfsBlobStoreFile.html" title="class in org.apache.storm.hdfs.blobstore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/storm/hdfs/blobstore/HdfsBlobStore.html" target="_top">Frames</a></li>
<li><a href="HdfsBlobStore.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li><a href="#nested.classes.inherited.from.class.org.apache.storm.blobstore.BlobStore">Nested</a>&nbsp;|&nbsp;</li>
<li><a href="#fields.inherited.from.class.org.apache.storm.blobstore.BlobStore">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small>Copyright &#169; 2022 <a href="https://www.apache.org/">The Apache Software Foundation</a>. All rights reserved.</small></p>
</body>
</html>