Class S3StorageDriver<I extends com.emc.mongoose.base.item.Item,O extends com.emc.mongoose.base.item.op.Operation<I>>
- java.lang.Object
-
- com.github.akurilov.commons.concurrent.AsyncRunnableBase
-
- com.emc.mongoose.base.concurrent.DaemonBase
-
- com.emc.mongoose.base.storage.driver.StorageDriverBase<I,O>
-
- com.emc.mongoose.storage.driver.coop.CoopStorageDriverBase<I,O>
-
- com.emc.mongoose.storage.driver.coop.netty.NettyStorageDriverBase<I,O>
-
- com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriverBase<I,O>
-
- com.emc.mongoose.storage.driver.coop.netty.http.s3.S3StorageDriver<I,O>
-
- All Implemented Interfaces:
com.emc.mongoose.base.concurrent.Daemon,com.emc.mongoose.base.storage.driver.StorageDriver<I,O>,com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriver<I,O>,com.emc.mongoose.storage.driver.coop.netty.NettyStorageDriver<I,O>,com.github.akurilov.commons.concurrent.AsyncRunnable,com.github.akurilov.commons.io.Output<O>,io.netty.channel.pool.ChannelPoolHandler,java.io.Closeable,java.lang.AutoCloseable,java.util.function.Consumer<O>
public class S3StorageDriver<I extends com.emc.mongoose.base.item.Item,O extends com.emc.mongoose.base.item.op.Operation<I>> extends com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriverBase<I,O>Created by kurila on 01.08.16.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.util.Base64.EncoderBASE64_ENCODERprotected static java.lang.ThreadLocal<java.lang.StringBuilder>BUCKET_LIST_QUERYprotected static java.lang.ThreadLocal<java.lang.StringBuilder>BUFF_CANONICALprotected booleanfsAccessprotected static java.util.function.Function<java.lang.String,javax.crypto.Mac>GET_MAC_BY_SECRETprotected static java.lang.ThreadLocal<java.util.Map<java.lang.String,javax.crypto.Mac>>MAC_BY_SECRETprotected com.github.akurilov.commons.io.Input<java.lang.String>taggingContentInputprotected booleantaggingEnabledprotected static java.lang.ThreadLocal<javax.xml.parsers.SAXParser>THREAD_LOCAL_XML_PARSERprotected booleanversioning-
Fields inherited from class com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriverBase
dynamicHeaders, httpReqSentCallback, sharedHeaders
-
Fields inherited from class com.emc.mongoose.storage.driver.coop.netty.NettyStorageDriverBase
bootstrap, connAttemptsLimit, netTimeoutMilliSec, reqSentCallback, storageNodeAddrs, storageNodePort
-
Fields inherited from class com.emc.mongoose.storage.driver.coop.CoopStorageDriverBase
childOpQueue, concurrencyThrottle
-
Fields inherited from class com.emc.mongoose.base.storage.driver.StorageDriverBase
authTokens, concurrencyLimit, credential, ioWorkerCount, namespace, pathToCredMap, requestAuthTokenFunc, requestNewPathFunc, stepId, verifyFlag
-
Fields inherited from interface com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriver
CHUNK_SIZE, HEADERS_LEN, KEY_CONTENT, REQ_LINE_LEN
-
-
Constructor Summary
Constructors Constructor Description S3StorageDriver(java.lang.String stepId, com.emc.mongoose.base.data.DataInput itemDataInput, com.github.akurilov.confuse.Config storageConfig, boolean verifyFlag, int batchSize)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidappendHandlers(io.netty.channel.Channel channel)protected voidapplyAuthHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders, io.netty.handler.codec.http.HttpMethod httpMethod, java.lang.String dstUriPath, com.emc.mongoose.base.storage.Credential credential)protected voidapplyCopyHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders, java.lang.String srcPath)protected voidapplyMetaDataHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders)voidcomplete(io.netty.channel.Channel channel, O op)protected voidenableBucketVersioning(java.lang.String nodeAddr, java.lang.String bucketVersioningReqUri)protected java.lang.StringgetCanonical(io.netty.handler.codec.http.HttpHeaders httpHeaders, io.netty.handler.codec.http.HttpMethod httpMethod, java.lang.String dstUriPath)protected voidhandleCheckBucketVersioningResponse(io.netty.handler.codec.http.FullHttpResponse getBucketVersioningResp, java.lang.String nodeAddr, java.lang.String bucketVersioningReqUri)protected io.netty.handler.codec.http.HttpRequesthttpRequest(O op, java.lang.String nodeAddr)java.util.List<I>list(com.emc.mongoose.base.item.ItemFactory<I> itemFactory, java.lang.String path, java.lang.String prefix, int idRadix, I lastPrevItem, int count)protected io.netty.handler.codec.http.HttpMethodpathHttpMethod(com.emc.mongoose.base.item.op.OpType opType)protected java.lang.StringpathUriPath(I item, java.lang.String srcPath, java.lang.String dstPath, com.emc.mongoose.base.item.op.OpType opType)protected java.lang.StringrequestNewAuthToken(com.emc.mongoose.base.storage.Credential credential)protected java.lang.StringrequestNewPath(java.lang.String path)protected io.netty.handler.codec.http.HttpMethodtokenHttpMethod(com.emc.mongoose.base.item.op.OpType opType)protected java.lang.StringtokenUriPath(I item, java.lang.String srcPath, java.lang.String dstPath, com.emc.mongoose.base.item.op.OpType opType)java.lang.StringtoString()-
Methods inherited from class com.emc.mongoose.storage.driver.coop.netty.http.HttpStorageDriverBase
applyDynamicHeaders, applyRangesHeaders, applySharedHeaders, dataHttpMethod, dataUriPath, doClose, executeHttpRequest, rangeListToStringBuff, sendRequest, uriQuery
-
Methods inherited from class com.emc.mongoose.storage.driver.coop.netty.NettyStorageDriverBase
adjustIoBuffers, channelAcquired, channelCreated, channelReleased, createConnectionPool, doStart, doStop, getUnpooledConnection, sendRequestData, submit, submit, submit
-
Methods inherited from class com.emc.mongoose.storage.driver.coop.CoopStorageDriverBase
activeOpCount, await, completedOpCount, doShutdown, handleCompleted, isIdle, put, put, put, scheduledOpCount
-
Methods inherited from class com.emc.mongoose.base.storage.driver.StorageDriverBase
concurrencyLimit, getInput, operationResultOutput, prepare
-
Methods inherited from class com.github.akurilov.commons.concurrent.AsyncRunnableBase
await, isClosed, isInitial, isShutdown, isStarted, isStopped, shutdown, start, state, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
-
-
-
Field Detail
-
BASE64_ENCODER
protected static final java.util.Base64.Encoder BASE64_ENCODER
-
THREAD_LOCAL_XML_PARSER
protected static final java.lang.ThreadLocal<javax.xml.parsers.SAXParser> THREAD_LOCAL_XML_PARSER
-
BUFF_CANONICAL
protected static final java.lang.ThreadLocal<java.lang.StringBuilder> BUFF_CANONICAL
-
BUCKET_LIST_QUERY
protected static final java.lang.ThreadLocal<java.lang.StringBuilder> BUCKET_LIST_QUERY
-
MAC_BY_SECRET
protected static final java.lang.ThreadLocal<java.util.Map<java.lang.String,javax.crypto.Mac>> MAC_BY_SECRET
-
GET_MAC_BY_SECRET
protected static final java.util.function.Function<java.lang.String,javax.crypto.Mac> GET_MAC_BY_SECRET
-
fsAccess
protected final boolean fsAccess
-
taggingEnabled
protected final boolean taggingEnabled
-
taggingContentInput
protected final com.github.akurilov.commons.io.Input<java.lang.String> taggingContentInput
-
versioning
protected final boolean versioning
-
-
Constructor Detail
-
S3StorageDriver
public S3StorageDriver(java.lang.String stepId, com.emc.mongoose.base.data.DataInput itemDataInput, com.github.akurilov.confuse.Config storageConfig, boolean verifyFlag, int batchSize) throws com.emc.mongoose.base.config.IllegalConfigurationException, java.lang.InterruptedException- Throws:
com.emc.mongoose.base.config.IllegalConfigurationExceptionjava.lang.InterruptedException
-
-
Method Detail
-
requestNewPath
protected java.lang.String requestNewPath(java.lang.String path)
-
handleCheckBucketVersioningResponse
protected void handleCheckBucketVersioningResponse(io.netty.handler.codec.http.FullHttpResponse getBucketVersioningResp, java.lang.String nodeAddr, java.lang.String bucketVersioningReqUri)
-
enableBucketVersioning
protected void enableBucketVersioning(java.lang.String nodeAddr, java.lang.String bucketVersioningReqUri)
-
requestNewAuthToken
protected final java.lang.String requestNewAuthToken(com.emc.mongoose.base.storage.Credential credential)
-
list
public java.util.List<I> list(com.emc.mongoose.base.item.ItemFactory<I> itemFactory, java.lang.String path, java.lang.String prefix, int idRadix, I lastPrevItem, int count) throws java.io.IOException
- Throws:
java.io.IOException
-
httpRequest
protected io.netty.handler.codec.http.HttpRequest httpRequest(O op, java.lang.String nodeAddr) throws java.net.URISyntaxException
-
tokenHttpMethod
protected final io.netty.handler.codec.http.HttpMethod tokenHttpMethod(com.emc.mongoose.base.item.op.OpType opType)
-
pathHttpMethod
protected final io.netty.handler.codec.http.HttpMethod pathHttpMethod(com.emc.mongoose.base.item.op.OpType opType)
-
tokenUriPath
protected final java.lang.String tokenUriPath(I item, java.lang.String srcPath, java.lang.String dstPath, com.emc.mongoose.base.item.op.OpType opType)
-
pathUriPath
protected final java.lang.String pathUriPath(I item, java.lang.String srcPath, java.lang.String dstPath, com.emc.mongoose.base.item.op.OpType opType)
-
applyMetaDataHeaders
protected void applyMetaDataHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders)
-
complete
public void complete(io.netty.channel.Channel channel, O op)- Specified by:
completein interfacecom.emc.mongoose.storage.driver.coop.netty.NettyStorageDriver<I extends com.emc.mongoose.base.item.Item,O extends com.emc.mongoose.base.item.op.Operation<I>>- Overrides:
completein classcom.emc.mongoose.storage.driver.coop.netty.NettyStorageDriverBase<I extends com.emc.mongoose.base.item.Item,O extends com.emc.mongoose.base.item.op.Operation<I>>
-
appendHandlers
protected void appendHandlers(io.netty.channel.Channel channel)
-
applyCopyHeaders
protected final void applyCopyHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders, java.lang.String srcPath) throws java.net.URISyntaxException
-
applyAuthHeaders
protected final void applyAuthHeaders(io.netty.handler.codec.http.HttpHeaders httpHeaders, io.netty.handler.codec.http.HttpMethod httpMethod, java.lang.String dstUriPath, com.emc.mongoose.base.storage.Credential credential)
-
getCanonical
protected java.lang.String getCanonical(io.netty.handler.codec.http.HttpHeaders httpHeaders, io.netty.handler.codec.http.HttpMethod httpMethod, java.lang.String dstUriPath)
-
-