你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Utility 类

  • java.lang.Object
    • com.microsoft.azure.storage.core.Utility

public class Utility

保留供内部使用。 提供实用工具方法的类。

字段摘要

修饰符和类型 字段和描述
final TimeZone GMT_ZONE

存储对 GMT 时区的引用。

final Locale LOCALE_US

存储对美国区域设置的引用。

final TimeZone UTC_ZONE

存储对 UTC 时区的引用。

方法摘要

修饰符和类型 方法和描述
StreamMd5AndLength analyzeStream(final InputStream sourceStream, long writeLength, long abandonLength, final boolean rewindSourceStream, final boolean calculateMD5)

确定输入流的大小,并根据需要计算流的 MD5 哈希。

void assertContinuationType(final ResultContinuation continuationToken, final ResultContinuationType continuationType)

断言延续标记为指定类型。

void assertGreaterThanOrEqual(final String param, final long value, final long min)

断言指定的值大于或等于最小值。

void assertInBounds(final String param, final long value, final long min, final long max)

断言指定的整数在有效范围内。

void assertNotNull(final String param, final Object value)

断言值不是 。

void assertNotNullOrEmpty(final String param, final String value)

断言指定的字符串不是或为空。

byte [] binaryAppend(byte[] arr1, byte[] arr2)

追加 2 字节数组。

void checkNullaryCtor(Class<?> clazzType)
XMLStreamWriter createXMLStreamWriter(StringWriter outWriter)

返回具有指定 的 。

boolean determinePathStyleFromUri(final URI baseURI)

返回一个值,该值指示指定的 URI 是否为路径样式 URI。

long encryptStreamIfUnderThreshold(final InputStream sourceStream, final ByteArrayOutputStream targetStream, Cipher cipher, long writeLength, long abandonLength)

加密输入流,最大长度为给定长度。 如果加密的数据长于放弃长度,则提前退出。

List<Integer> findAllPatternOccurences(byte[] array, byte[] pattern)

扫描一个字节数组以查找某个模式的所有匹配项,且没有出现次数范围重叠。

int findPattern(byte[] array, byte[] pattern, int scanOffset)

从提供的偏移量开始,扫描字节数组以查找模式的第一个匹配项。

String formatETag(final String etag)

从 XML 流读取器读取 Etag 元素的字符数据。

StorageException generateNewUnexpectedStorageException(final Exception cause)

返回意外的存储异常。

String getGMTTime()

使用RFC1123模式返回当前 GMT 日期/时间字符串。

String getGMTTime(final Date date)

使用RFC1123模式返回指定值的 GTM 日期/时间字符串。

String getJavaISO8601Time(Date date)

使用 Java 版本的ISO8601模式返回指定值的 UTC 日期/时间字符串,该模式的精度限制为毫秒。

JsonGenerator getJsonGenerator(OutputStream outStream)

返回具有指定 的 。

JsonGenerator getJsonGenerator(StringWriter strWriter)

返回具有指定 的 。

JsonParser getJsonParser(final InputStream inStream)

返回具有指定 的 。 此 JsonParser 将允许非数字。

JsonParser getJsonParser(final String jsonString)

返回具有指定 的 。 此 JsonParser 将允许非数字。

RequestLocationMode getListingLocationMode(ResultContinuation token)

通过查看延续标记来确定列出命令可以面向哪个位置。

int getRemainingTimeout(Long operationExpiryTimeInMs, Integer timeoutIntervalInMs)

返回一个值,该值表示操作到期前的剩余时间。

SAXParser getSAXParser()

返回命名空间感知 。

String getStandardHeaderValue(final HttpURLConnection conn, final String headerName)

返回指定连接请求中的标准标头值,如果未为请求指定标头值,则返回空字符串。

String getUTCTimeOrEmpty(final Date value)

使用ISO8601模式返回指定值的 UTC 日期/时间。

IOException initIOException(final Exception ex)

使用指定的异常创建 类的实例。

boolean isNullOrEmpty(final String value)

返回一个值,该值指示指定的字符串是还是空。

boolean isNullOrEmptyOrWhitespace(final String value)

返回一个值,该值指示指定的字符串是 、空还是空格。

void logHttpError(StorageException ex, OperationContext opContext)

序列化分析的 StorageException。 如果遇到异常,则返回空字符串。

void logHttpRequest(HttpURLConnection conn, OperationContext opContext)

记录 HttpURLConnection 请求。 如果遇到异常,则不记录任何内容。

void logHttpResponse(HttpURLConnection conn, OperationContext opContext)

记录 HttpURLConnection 响应。 如果遇到异常,则不记录任何内容。

HashMap<String, String> parseAccountString(final String parseString)

分析连接字符串并将其值作为键/值对的哈希映射返回。

Date parseDate(String dateString)

给定一个字符串,表示ISO8601模式形式的日期,生成表示日期的精度高达毫秒。

Date parseDate(String dateString, boolean dateBackwardCompatibility)

给定一个字符串,表示ISO8601模式形式的日期,生成表示日期的精度高达毫秒。 除非需要,否则请改用 parseDate(String dateString)

请参阅此处了解详细信息。

Date parseRFC1123DateFromStringInGMT(final String value)

返回RFC1123模式中指定字符串的 GMT 日期。

String safeDecode(final String stringToDecode)

执行指定字符串的安全解码,注意保留每个字符,而不是将其替换为空格字符。

String safeEncode(final String stringToEncode)

执行指定字符串的安全编码,注意为每个空格字符插入,而不是插入字符。

String safeRelativize(final URI baseURI, final URI toUri)

确定两个指定 URI 之间的相对差异。

List<byte[]> splitOnPattern(byte[] array, byte[] pattern)
String stringJoin(CharSequence delimiter, final String... strings)

Java 8 中 String.join () 的等效项。

String stringJoin(CharSequence delimiter, Iterable<String> strings)

Java 8 中 String.join () 的等效项。

String trimEnd(final String value, final char trimChar)

剪裁字符串末尾的指定字符。

String trimStart(final String value)

剪裁字符串开头的空格。

boolean validateMaxExecutionTimeout(Long operationExpiryTimeInMs)

返回一个值,该值表示是否会超过最大执行时间。

boolean validateMaxExecutionTimeout(Long operationExpiryTimeInMs, long additionalInterval)

返回一个值,该值表示是否会超过最大执行时间。

StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options, final Boolean shouldFlush)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options, final Boolean shouldFlush, StorageRequest<?, ?, Integer> request, StreamMd5AndLength descriptor)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

字段详细信息

GMT_ZONE

public static final TimeZone GMT_ZONE= TimeZone.getTimeZone("GMT")

存储对 GMT 时区的引用。

LOCALE_US

public static final Locale LOCALE_US= Locale.US

存储对美国区域设置的引用。

UTC_ZONE

public static final TimeZone UTC_ZONE= TimeZone.getTimeZone("UTC")

存储对 UTC 时区的引用。

方法详细信息

analyzeStream

public static StreamMd5AndLength analyzeStream(final InputStream sourceStream, long writeLength, long abandonLength, final boolean rewindSourceStream, final boolean calculateMD5)

确定输入流的大小,并根据需要计算流的 MD5 哈希。

Parameters:

sourceStream - 一个 InputStream 对象,表示要度量的流。
writeLength - 要从流中读取的字节数。
abandonLength - 放弃分析之前要读取的字节数。 将此值设置为 -1 以强制读取整个流。 提供此参数以支持上传阈值。
rewindSourceStream -

true 如果流在读取后应重新回转流,则为 ;否则为 false

calculateMD5 -

true 如果要计算 MD5 哈希,则为 ;否则为 false

Returns:

一个 StreamMd5AndLength 对象,该对象包含流长度和(可选)MD5 哈希。

Throws:

IOException - 如果发生 I/O 错误。
StorageException - 如果发生存储服务错误。

assertContinuationType

public static void assertContinuationType(final ResultContinuation continuationToken, final ResultContinuationType continuationType)

断言延续标记为指定类型。

Parameters:

continuationToken - 一个 ResultContinuation 对象,表示正在检查其类型的继续标记。
continuationType - 一个 ResultContinuationType 值,该值表示使用指定的继续标记断言的继续标记类型。

assertGreaterThanOrEqual

public static void assertGreaterThanOrEqual(final String param, final long value, final long min)

断言指定的值大于或等于最小值。

Parameters:

param - 一个 String ,它表示参数的名称,如果参数超出边界,该 value 名称将成为异常消息文本。
value - 指定的参数的值。
min - 指定参数的最小值。

assertInBounds

public static void assertInBounds(final String param, final long value, final long min, final long max)

断言指定的整数在有效范围内。

Parameters:

param - 一个 String ,它表示参数的名称,如果参数超出边界,该 value 名称将成为异常消息文本。
value - 指定的参数的值。
min - 指定参数的最小值。
max - 指定参数的最大值。

assertNotNull

public static void assertNotNull(final String param, final Object value)

断言值不是 。

Parameters:

param - 一个 String ,它表示参数的名称,如果 value 参数为 null,则它将成为异常消息文本。
value - 一个 Object 对象,表示指定参数的值。 这是断言为 非 null的值。

assertNotNullOrEmpty

public static void assertNotNullOrEmpty(final String param, final String value)

断言指定的字符串不是或为空。

Parameters:

param - 一个 String ,它表示参数的名称,如果参数为 null 或空字符串,则它value将成为异常消息文本。
value - 一个 String ,它表示指定参数的值。 这是断言为 not null 的值,而不是空字符串。

binaryAppend

public static byte [] binaryAppend(byte[] arr1, byte[] arr2)

追加 2 字节数组。

Parameters:

arr1 - 第一个数组。
arr2 - 第二个数组。

Returns:

结果字节数组。

checkNullaryCtor

public static void checkNullaryCtor(Class clazzType)

Parameters:

clazzType

createXMLStreamWriter

public static XMLStreamWriter createXMLStreamWriter(StringWriter outWriter)

返回具有指定 的 。

Parameters:

outWriter - StringWriter用于创建实例的 XMLStreamWriter

Returns:

一个 XMLStreamWriter 实例

Throws:

XMLStreamException

determinePathStyleFromUri

public static boolean determinePathStyleFromUri(final URI baseURI)

返回一个值,该值指示指定的 URI 是否为路径样式 URI。

Parameters:

baseURI - 一个 java.net.URI 值,该值表示要检查的 URI。

Returns:

true 如果指定的 URI 为路径样式,则为 ;否则为 false

encryptStreamIfUnderThreshold

public static long encryptStreamIfUnderThreshold(final InputStream sourceStream, final ByteArrayOutputStream targetStream, Cipher cipher, long writeLength, long abandonLength)

加密输入流,最大长度为给定长度。 如果加密的数据长于放弃长度,则提前退出。

Parameters:

sourceStream - 一个 InputStream 对象,表示要度量的流。
targetStream - 一个 ByteArrayOutputStream 对象,表示要写入加密数据的流。
cipher - Cipher用于加密数据的 。
writeLength - 要从 sourceStream 读取和加密的字节数。
abandonLength - 放弃分析之前要读取的字节数。 将此值设置为 -1 以强制读取整个流。 提供此参数以支持上传阈值。

Returns:

加密流的大小;如果加密流超过 abandonLength,则为 -1。

Throws:

IOException - 如果发生 I/O 错误。

findAllPatternOccurences

public static List findAllPatternOccurences(byte[] array, byte[] pattern)

扫描一个字节数组以查找某个模式的所有匹配项,且没有出现次数范围重叠。

Parameters:

array - 要搜索的数组。
pattern - 要搜索的模式。

Returns:

模式的所有匹配项的起始索引的列表,按升序排列。

findPattern

public static int findPattern(byte[] array, byte[] pattern, int scanOffset)

从提供的偏移量开始,扫描字节数组以查找模式的第一个匹配项。

Parameters:

array - 要搜索的数组。
pattern - 要搜索的模式。
scanOffset - 从何处开始搜索。

Returns:

找到的模式的起始索引。 如果找不到 ,则为 -1。

formatETag

public static String formatETag(final String etag)

从 XML 流读取器读取 Etag 元素的字符数据。

Parameters:

etag

Returns:

一个 String ,表示 Etag 元素的字符数据。

generateNewUnexpectedStorageException

public static StorageException generateNewUnexpectedStorageException(final Exception cause)

返回意外的存储异常。

Parameters:

cause - 一个 Exception 对象,表示导致意外错误的初始异常。

Returns:

一个 StorageException 对象,表示引发的意外存储异常。

getGMTTime

public static String getGMTTime()

使用RFC1123模式返回当前 GMT 日期/时间字符串。

Returns:

String 它表示使用RFC1123模式的当前 GMT 日期/时间。

getGMTTime

public static String getGMTTime(final Date date)

使用RFC1123模式返回指定值的 GTM 日期/时间字符串。

Parameters:

date - 一个 Date 对象,表示RFC1123模式中要转换为 GMT 日期/时间的日期。

Returns:

一个 String ,它表示使用RFC1123模式指定值的 GMT 日期/时间。

getJavaISO8601Time

public static String getJavaISO8601Time(Date date)

使用 Java 版本的ISO8601模式返回指定值的 UTC 日期/时间字符串,该模式的精度限制为毫秒。

Parameters:

date - 一个 Date 对象,该对象表示在 Java 版本的ISO8601模式中转换为 UTC 日期/时间的日期。

Returns:

一个 , String 它表示使用 Java 版本的ISO8601模式指定值的 UTC 日期/时间。

getJsonGenerator

public static JsonGenerator getJsonGenerator(OutputStream outStream)

返回具有指定 的 。

Parameters:

outStream - OutputStream用于创建实例的 JsonGenerator

Returns:

一个 JsonGenerator 实例

Throws:

IOException

getJsonGenerator

public static JsonGenerator getJsonGenerator(StringWriter strWriter)

返回具有指定 的 。

Parameters:

strWriter - StringWriter用于创建实例的 JsonGenerator

Returns:

一个 JsonGenerator 实例

Throws:

IOException

getJsonParser

public static JsonParser getJsonParser(final InputStream inStream)

返回具有指定 的 。 此 JsonParser 将允许非数字。

Parameters:

inStream - InputStream用于创建实例的 JsonGenerator

Returns:

一个 JsonGenerator 实例。

Throws:

IOException

getJsonParser

public static JsonParser getJsonParser(final String jsonString)

返回具有指定 的 。 此 JsonParser 将允许非数字。

Parameters:

jsonString - String用于创建实例的 JsonGenerator

Returns:

一个 JsonGenerator 实例。

Throws:

IOException

getListingLocationMode

public static RequestLocationMode getListingLocationMode(ResultContinuation token)

通过查看延续标记来确定列出命令可以面向哪个位置。

Parameters:

token - 继续标记

Returns:

位置模式

getRemainingTimeout

public static int getRemainingTimeout(Long operationExpiryTimeInMs, Integer timeoutIntervalInMs)

返回一个值,该值表示操作到期前的剩余时间。

Parameters:

operationExpiryTimeInMs - 请求过期的时间
timeoutIntervalInMs - 服务器端超时间隔

Returns:

操作过期之前的剩余时间

Throws:

StorageException - 如果没有剩余时间,则包装 TimeoutException

getSAXParser

public static SAXParser getSAXParser()

返回命名空间感知 。

Returns:

命名空间 SAXParser 感知的实例

Throws:

ParserConfigurationException
SAXException

getStandardHeaderValue

public static String getStandardHeaderValue(final HttpURLConnection conn, final String headerName)

返回指定连接请求中的标准标头值,如果未为请求指定标头值,则返回空字符串。

Parameters:

conn - 表示 HttpURLConnection 请求的 对象。
headerName - 一个 String ,它表示所请求的标头的名称。

Returns:

一个 String ,它表示标头值;或者, null 如果没有对应的标头值,则为 headerName

getUTCTimeOrEmpty

public static String getUTCTimeOrEmpty(final Date value)

使用ISO8601模式返回指定值的 UTC 日期/时间。

Parameters:

value - 一个 Date 对象,表示在ISO8601模式中转换为 UTC 日期/时间的日期。 如果此值为 null,则此方法返回一个空字符串。

Returns:

一个 String ,它使用 ISO8601 模式表示指定值的 UTC 日期/时间;如果 为 ,则valuenull为 空字符串。

initIOException

public static IOException initIOException(final Exception ex)

使用指定的异常创建 类的实例。

Parameters:

ex - 一个 Exception 对象,表示用于创建 IO 异常的异常。

Returns:

表示 java.io.IOException 创建的 IO 异常的 对象。

isNullOrEmpty

public static boolean isNullOrEmpty(final String value)

返回一个值,该值指示指定的字符串是还是空。

Parameters:

value - String正在检查或null为空的 。

Returns:

true 如果指定的值为 null 或为空,则为 ;否则为 false

isNullOrEmptyOrWhitespace

public static boolean isNullOrEmptyOrWhitespace(final String value)

返回一个值,该值指示指定的字符串是 、空还是空格。

Parameters:

value - String正在检查 、null空或空格的 。

Returns:

true 如果指定的值为 null、空或空格,则为 ;否则为 false

logHttpError

public static void logHttpError(StorageException ex, OperationContext opContext)

序列化分析的 StorageException。 如果遇到异常,则返回空字符串。

Parameters:

ex - 要序列化的 StorageException。
opContext - 提供记录器的操作上下文。

logHttpRequest

public static void logHttpRequest(HttpURLConnection conn, OperationContext opContext)

记录 HttpURLConnection 请求。 如果遇到异常,则不记录任何内容。

Parameters:

conn - 要序列化的 HttpURLConnection。
opContext - 提供记录器的操作上下文。

logHttpResponse

public static void logHttpResponse(HttpURLConnection conn, OperationContext opContext)

记录 HttpURLConnection 响应。 如果遇到异常,则不记录任何内容。

Parameters:

conn - 要序列化的 HttpURLConnection。
opContext - 提供记录器的操作上下文。

parseAccountString

public static HashMap parseAccountString(final String parseString)

分析连接字符串并将其值作为键/值对的哈希映射返回。

Parameters:

parseString - 一个 String ,表示要分析的连接字符串。

Returns:

一个 java.util.HashMap 对象,表示从连接字符串分析的键/值对的哈希映射。

parseDate

public static Date parseDate(String dateString)

给定一个字符串,表示ISO8601模式形式的日期,生成表示日期的精度高达毫秒。

Parameters:

dateString - String要解释为 的Date

Returns:

相应的 Date 对象

parseDate

public static Date parseDate(String dateString, boolean dateBackwardCompatibility)

给定一个字符串,表示ISO8601模式形式的日期,生成表示日期的精度高达毫秒。 除非需要,否则请改用 parseDate(String dateString)

请参阅此处了解详细信息。

Parameters:

dateString - String要解释为 的Date
dateBackwardCompatibility -

true 更正可能已使用此库 2.0.0 之前的版本编写的日期值;否则 false

Returns:

相应的 Date 对象

parseRFC1123DateFromStringInGMT

public static Date parseRFC1123DateFromStringInGMT(final String value)

返回RFC1123模式中指定字符串的 GMT 日期。

Parameters:

value - 一个 String ,表示要分析的字符串。

Returns:

一个 Date 对象,它表示RFC1123模式中的 GMT 日期。

Throws:

ParseException - 如果指定的字符串无效。

safeDecode

public static String safeDecode(final String stringToDecode)

执行指定字符串的安全解码,注意保留每个字符,而不是将其替换为空格字符。

Parameters:

stringToDecode - 一个 String ,表示要解码的字符串。

Returns:

一个 String ,它表示已解码的字符串。

Throws:

StorageException - 如果发生存储服务错误。

safeEncode

public static String safeEncode(final String stringToEncode)

执行指定字符串的安全编码,注意为每个空格字符插入,而不是插入字符。

Parameters:

stringToEncode - 一个 String ,表示要编码的字符串。

Returns:

一个 String ,它表示编码的字符串。

Throws:

StorageException - 如果发生存储服务错误。

safeRelativize

public static String safeRelativize(final URI baseURI, final URI toUri)

确定两个指定 URI 之间的相对差异。

Parameters:

baseURI - 一个 java.net.URI 对象,该对象表示将为其设为相对的 toUri 基 URI。
toUri - 一个 java.net.URI 对象,该对象表示要相对于 创建的 baseURIURI。

Returns:

一个 String ,它表示 对 baseURItoUri相对 URI 或其自身的 toUri URI,具体取决于 和 的主机名和方案是否相同toUribaseURI。 如果 和 的baseURI主机名和方案相同,此方法将返回未编码的相对 URI,因此,如果追加到 baseURI,将产生 toUritoUri 如果 和 toUribaseURI主机名或方案不完全相同,此方法将返回由 toUri指定的未编码的完整 URI。

Throws:

URISyntaxException - 如果 baseURItoUri 无效。

splitOnPattern

public static List splitOnPattern(byte[] array, byte[] pattern)

Parameters:

array
pattern

stringJoin

public static String stringJoin(CharSequence delimiter, final String... strings)

Java 8 中 String.join () 的等效项。

Parameters:

delimiter - 用于联接字符串的字符。
strings - 要联接的字符串。

Returns:

联接的字符串。

stringJoin

public static String stringJoin(CharSequence delimiter, Iterable strings)

Java 8 中 String.join () 的等效项。

Parameters:

delimiter - 用于联接字符串的字符。
strings - 要联接的字符串。

Returns:

联接的字符串。

trimEnd

protected static String trimEnd(final String value, final char trimChar)

剪裁字符串末尾的指定字符。

Parameters:

value - 一个 String ,表示要剪裁的字符串。
trimChar - 要从字符串末尾剪裁的字符。

Returns:

从末尾剪裁指定字符的字符串。

trimStart

public static String trimStart(final String value)

剪裁字符串开头的空格。

Parameters:

value - 一个 String ,表示要剪裁的字符串。

Returns:

从开头剪裁空格的字符串。

validateMaxExecutionTimeout

public static boolean validateMaxExecutionTimeout(Long operationExpiryTimeInMs)

返回一个值,该值表示是否会超过最大执行时间。

Parameters:

operationExpiryTimeInMs - 请求过期的时间

Returns:

true 如果超过最大执行时间,则为 ;否则为 false

validateMaxExecutionTimeout

public static boolean validateMaxExecutionTimeout(Long operationExpiryTimeInMs, long additionalInterval)

返回一个值,该值表示是否会超过最大执行时间。

Parameters:

operationExpiryTimeInMs - 请求过期的时间
additionalInterval - 从现在起需要的任何额外时间

Returns:

true 如果超过最大执行时间,则为 ;否则为 false

writeToOutputStream

public static StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

Parameters:

sourceStream - 一个 InputStream 对象,表示要用作源的输入流。
outStream - 一个 OutputStream 对象,表示要用作目标的输出流。
writeLength - 要从流中读取的字节数。
rewindSourceStream -

true 如果在读取输入流 之前 应重新回转输入流,则为 ;否则 false

calculateMD5 -

true 如果要计算 MD5 哈希,则为 ;否则为 false

opContext - 一个 OperationContext 对象,它一个表示当前操作的上下文。 此对象用于跟踪对存储服务的请求并提供有关操作的其他运行时信息。
options - 一个 RequestOptions 对象,该对象指定请求的任何其他选项。 即最大执行时间。

Returns:

一个 StreamMd5AndLength 对象,该对象包含输出流长度和 MD5 哈希(可选)。

Throws:

IOException - 如果发生 I/O 错误。
StorageException - 如果发生存储服务错误。

writeToOutputStream

public static StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options, final Boolean shouldFlush)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

Parameters:

sourceStream - 一个 InputStream 对象,表示要用作源的输入流。
outStream - 一个 OutputStream 对象,表示要用作目标的输出流。
writeLength - 要从流中读取的字节数。
rewindSourceStream -

true 如果在读取输入流 之前 应重新回转输入流,则为 ;否则 false

calculateMD5 -

true 如果要计算 MD5 哈希,则为 ;否则为 false

opContext - 一个 OperationContext 对象,它一个表示当前操作的上下文。 此对象用于跟踪对存储服务的请求并提供有关操作的其他运行时信息。
options - 一个 RequestOptions 对象,该对象指定请求的任何其他选项。 即最大执行时间。
shouldFlush

Returns:

一个 StreamMd5AndLength 对象,该对象包含输出流长度和 MD5 哈希(可选)。

Throws:

IOException - 如果发生 I/O 错误。
StorageException - 如果发生存储服务错误。

writeToOutputStream

public static StreamMd5AndLength writeToOutputStream(final InputStream sourceStream, final OutputStream outStream, long writeLength, final boolean rewindSourceStream, final boolean calculateMD5, OperationContext opContext, final RequestOptions options, final Boolean shouldFlush, StorageRequest request, StreamMd5AndLength descriptor)

从输入流读取数据并将其写入输出流,计算写入的数据的长度,并选择性地计算数据的 MD5 哈希。

Parameters:

sourceStream - 一个 InputStream 对象,表示要用作源的输入流。
outStream - 一个 OutputStream 对象,表示要用作目标的输出流。
writeLength - 要从流中读取的字节数。
rewindSourceStream -

true 如果在读取输入流 之前 应重新回转输入流,则为 ;否则 false

calculateMD5 -

true 如果要计算 MD5 哈希,则为 ;否则为 false

opContext - 一个 OperationContext 对象,它一个表示当前操作的上下文。 此对象用于跟踪对存储服务的请求并提供有关操作的其他运行时信息。
options - 一个 RequestOptions 对象,该对象指定请求的任何其他选项。 即最大执行时间。
shouldFlush
request - 由下载恢复用于在请求上设置 currentRequestByteCount。 否则,始终使用 null。
descriptor - 一个 StreamMd5AndLength 在恢复操作中追加到 的对象;如果未从恢复中调用,则为 null。 需要传递此值以用于恢复,以防已读取正文的一部分,恢复将尝试下载剩余的字节,但会对最初请求的范围大小执行 MD5 验证。

Returns:

一个 StreamMd5AndLength 对象,该对象包含输出流长度和 MD5 哈希(可选)。

Throws:

IOException - 如果发生 I/O 错误。
StorageException - 如果发生存储服务错误。

适用于