blob: 193c72ed244b767ef0ff9f6036193cc98a628ff0 [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>LocalFsBlobStore (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="LocalFsBlobStore (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};
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/LocalFsBlobStore.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><a href="../../../../org/apache/storm/blobstore/ListLocalFs.html" title="class in org.apache.storm.blobstore"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStoreFile.html" title="class in org.apache.storm.blobstore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/storm/blobstore/LocalFsBlobStore.html" target="_top">Frames</a></li>
<li><a href="LocalFsBlobStore.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="#field.summary">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><a href="#field.detail">Field</a>&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.blobstore</div>
<h2 title="Class LocalFsBlobStore" class="title">Class LocalFsBlobStore</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.blobstore.LocalFsBlobStore</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">LocalFsBlobStore</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 local file system backed blob store implementation for Nimbus.</p><p><p>For a local blob store the user and the supervisor use NimbusBlobStore Client API in order to talk to nimbus through thrift. The authentication and authorization here is based on the subject. 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 local blob store 1. The USER interacts with nimbus to upload and access blobs through NimbusBlobStore Client API. 2. The USER sets the ACLs, and the blob access is validated against these ACLs. 3. The SUPERVISOR interacts with nimbus through the NimbusBlobStore Client API to download the blobs. The supervisors principal should match the set of users configured into SUPERVISOR_ADMINS. Here, the PrincipalToLocalPlugin takes care of mapping the principal to user name before the ACL validation.</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>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected <a href="../../../../org/apache/storm/blobstore/BlobStoreAclHandler.html" title="class in org.apache.storm.blobstore">BlobStoreAclHandler</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.html#aclHandler">aclHandler</a></span></code>&nbsp;</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static org.slf4j.Logger</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.html#LOG">LOG</a></span></code>&nbsp;</td>
</tr>
</table>
<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/blobstore/LocalFsBlobStore.html#LocalFsBlobStore--">LocalFsBlobStore</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/blobstore/LocalFsBlobStore.html#checkForBlobOrDownload-java.lang.String-">checkForBlobOrDownload</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)</code>&nbsp;</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.html#checkForBlobUpdate-java.lang.String-">checkForBlobUpdate</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)</code>&nbsp;</td>
</tr>
<tr id="i2" 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/blobstore/LocalFsBlobStore.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="i3" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.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="i4" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.html#fullCleanup-long-">fullCleanup</a></span>(long&nbsp;age)</code>&nbsp;</td>
</tr>
<tr id="i5" class="rowColor">
<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/blobstore/LocalFsBlobStore.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="i6" class="altColor">
<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/blobstore/LocalFsBlobStore.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="i7" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.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="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/blobstore/LocalFsBlobStore.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/blobstore/LocalFsBlobStore.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>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.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="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.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="i12" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStore.html#shutdown--">shutdown</a></span>()</code>&nbsp;</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/blobstore/LocalFsBlobStore.html#startSyncBlobs--">startSyncBlobs</a></span>()</code>
<div class="block">Start the syncing blobs between the local running instance of the BlobStore and others.</div>
</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/blobstore/LocalFsBlobStore.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/blobstore/LocalFsBlobStore.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>
</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#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#updateLastBlobUpdateTime--">updateLastBlobUpdateTime</a>, <a href="../../../../org/apache/storm/blobstore/BlobStore.html#validateBlobUpdateTime--">validateBlobUpdateTime</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">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="LOG">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>LOG</h4>
<pre>public static final&nbsp;org.slf4j.Logger LOG</pre>
</li>
</ul>
<a name="aclHandler">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>aclHandler</h4>
<pre>protected&nbsp;<a href="../../../../org/apache/storm/blobstore/BlobStoreAclHandler.html" title="class in org.apache.storm.blobstore">BlobStoreAclHandler</a> aclHandler</pre>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="LocalFsBlobStore--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>LocalFsBlobStore</h4>
<pre>public&nbsp;LocalFsBlobStore()</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="startSyncBlobs--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>startSyncBlobs</h4>
<pre>public&nbsp;void&nbsp;startSyncBlobs()
throws <a href="../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a>,
<a href="../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></pre>
<div class="block"><span class="descfrmTypeLabel">Description copied from class:&nbsp;<code><a href="../../../../org/apache/storm/blobstore/BlobStore.html#startSyncBlobs--">BlobStore</a></code></span></div>
<div class="block"><p>Start the syncing blobs between the local running instance of the BlobStore and others. A no-op for the HdfsBlobStore where HDFS itself does the syncing but for the LocalFsBlobStore ZK state updates are run periodically here.</p></div>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="../../../../org/apache/storm/blobstore/BlobStore.html#startSyncBlobs--">startSyncBlobs</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="../../../../org/apache/storm/generated/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
<dd><code><a href="../../../../org/apache/storm/generated/AuthorizationException.html" title="class in org.apache.storm.generated">AuthorizationException</a></code></dd>
</dl>
</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>
</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="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="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</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="https://docs.oracle.com/javase/8/docs/api/java/lang/Exception.html?is-external=true" title="class or interface in java.lang">Exception</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="checkForBlobOrDownload-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkForBlobOrDownload</h4>
<pre>public&nbsp;boolean&nbsp;checkForBlobOrDownload(<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)
throws <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/KeyNotFoundException.html" title="class in org.apache.storm.generated">KeyNotFoundException</a></code></dd>
</dl>
</li>
</ul>
<a name="checkForBlobUpdate-java.lang.String-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>checkForBlobUpdate</h4>
<pre>public&nbsp;void&nbsp;checkForBlobUpdate(<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)</pre>
</li>
</ul>
<a name="fullCleanup-long-">
<!-- -->
</a>
<ul class="blockListLast">
<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>
</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/LocalFsBlobStore.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><a href="../../../../org/apache/storm/blobstore/ListLocalFs.html" title="class in org.apache.storm.blobstore"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../org/apache/storm/blobstore/LocalFsBlobStoreFile.html" title="class in org.apache.storm.blobstore"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../index.html?org/apache/storm/blobstore/LocalFsBlobStore.html" target="_top">Frames</a></li>
<li><a href="LocalFsBlobStore.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="#field.summary">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><a href="#field.detail">Field</a>&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>