files.com 1.1.813 → 1.1.815
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/_VERSION +1 -1
- data/doc/Files/APIConnectionError.html +1 -1
- data/doc/Files/APIError.html +1 -1
- data/doc/Files/AccountAlreadyExistsError.html +1 -1
- data/doc/Files/AccountLineItem.html +1 -1
- data/doc/Files/AccountOverdueError.html +1 -1
- data/doc/Files/Action.html +1 -1
- data/doc/Files/ActionLog.html +1 -1
- data/doc/Files/ActionNotificationExport.html +1 -1
- data/doc/Files/ActionNotificationExportResult.html +1 -1
- data/doc/Files/AdditionalAuthenticationRequiredError.html +1 -1
- data/doc/Files/AgentNode.html +1 -1
- data/doc/Files/AgentNodeConnection.html +1 -1
- data/doc/Files/AgentNodeInstance.html +1 -1
- data/doc/Files/AgentPushUpdate.html +1 -1
- data/doc/Files/AgentPushUpdateBlockedError.html +1 -1
- data/doc/Files/AgentUnavailableError.html +1 -1
- data/doc/Files/AgentUpgradeRequiredError.html +1 -1
- data/doc/Files/AiAssistantPersonality.html +1 -1
- data/doc/Files/AiTask.html +1 -1
- data/doc/Files/AiTaskCannotBeRunManuallyError.html +1 -1
- data/doc/Files/AlreadyCompletedError.html +1 -1
- data/doc/Files/Api.html +20 -13
- data/doc/Files/ApiClient/RequestLogContext.html +29 -29
- data/doc/Files/ApiClient/TransferSettings.html +721 -0
- data/doc/Files/ApiClient.html +756 -204
- data/doc/Files/ApiKey.html +1 -1
- data/doc/Files/ApiKeyIsDisabledError.html +1 -1
- data/doc/Files/ApiKeyIsPathRestrictedError.html +1 -1
- data/doc/Files/ApiKeyNotFoundError.html +1 -1
- data/doc/Files/ApiKeyOnlyForDesktopAppError.html +1 -1
- data/doc/Files/ApiKeyOnlyForFileOperationsError.html +1 -1
- data/doc/Files/ApiKeyOnlyForMobileAppError.html +1 -1
- data/doc/Files/ApiKeyOnlyForOfficeIntegrationError.html +1 -1
- data/doc/Files/ApiKeySessionsNotSupportedError.html +1 -1
- data/doc/Files/ApiRequestLog.html +1 -1
- data/doc/Files/App.html +1 -1
- data/doc/Files/As2IncomingMessage.html +1 -1
- data/doc/Files/As2OutgoingMessage.html +1 -1
- data/doc/Files/As2Partner.html +1 -1
- data/doc/Files/As2Station.html +1 -1
- data/doc/Files/AttachmentTooLargeError.html +1 -1
- data/doc/Files/AuthenticationError.html +1 -1
- data/doc/Files/AuthenticationRequiredError.html +1 -1
- data/doc/Files/Auto.html +1 -1
- data/doc/Files/Automation.html +1 -1
- data/doc/Files/AutomationAuthoringSchema.html +1 -1
- data/doc/Files/AutomationCannotBeRunManuallyError.html +1 -1
- data/doc/Files/AutomationExecutionNode.html +1 -1
- data/doc/Files/AutomationLog.html +1 -1
- data/doc/Files/AutomationRun.html +1 -1
- data/doc/Files/AutomationsUnavailableError.html +1 -1
- data/doc/Files/BadRequestError.html +1 -1
- data/doc/Files/BandwidthSnapshot.html +1 -1
- data/doc/Files/Behavior.html +1 -1
- data/doc/Files/BehaviorNotAllowedOnRemoteServerError.html +1 -1
- data/doc/Files/BillingInformationHiddenError.html +1 -1
- data/doc/Files/BillingPermissionRequiredError.html +1 -1
- data/doc/Files/BufferedUploadDisabledForThisDestinationError.html +1 -1
- data/doc/Files/Bundle.html +1 -1
- data/doc/Files/BundleAction.html +1 -1
- data/doc/Files/BundleDownload.html +1 -1
- data/doc/Files/BundleMaximumUsesReachedError.html +1 -1
- data/doc/Files/BundleNotification.html +1 -1
- data/doc/Files/BundleOnlyAllowsPreviewsError.html +1 -1
- data/doc/Files/BundleOperationRequiresSubfolderError.html +1 -1
- data/doc/Files/BundlePath.html +1 -1
- data/doc/Files/BundlePathNotFoundError.html +1 -1
- data/doc/Files/BundlePermissionRequiredError.html +1 -1
- data/doc/Files/BundleRecipient.html +1 -1
- data/doc/Files/BundleRegistration.html +1 -1
- data/doc/Files/BundleRegistrationCodeFailedError.html +1 -1
- data/doc/Files/BundleRegistrationNotFoundError.html +1 -1
- data/doc/Files/CannotAdministerHigherLevelUserError.html +1 -1
- data/doc/Files/CannotDownloadDirectoryError.html +1 -1
- data/doc/Files/CannotLoginWhileUsingKeyError.html +1 -1
- data/doc/Files/CantActForOtherUserError.html +1 -1
- data/doc/Files/CantMoveWithMultipleLocationsError.html +1 -1
- data/doc/Files/ChatMessage.html +1 -1
- data/doc/Files/ChatSession.html +1 -1
- data/doc/Files/ChildSiteManagementPolicy.html +1 -1
- data/doc/Files/Clickwrap.html +1 -1
- data/doc/Files/CodeNotFoundError.html +1 -1
- data/doc/Files/ConfigurationLockedPathError.html +1 -1
- data/doc/Files/ContactAdminForPasswordChangeHelpError.html +1 -1
- data/doc/Files/CouldNotCreateParentError.html +1 -1
- data/doc/Files/CustomDomain.html +1 -1
- data/doc/Files/DatetimeParseError.html +1 -1
- data/doc/Files/DesktopConfigurationProfile.html +1 -1
- data/doc/Files/DestinationExistsError.html +1 -1
- data/doc/Files/DestinationFolderLimitedError.html +1 -1
- data/doc/Files/DestinationParentConflictError.html +1 -1
- data/doc/Files/DestinationParentDoesNotExistError.html +1 -1
- data/doc/Files/DestinationSameError.html +1 -1
- data/doc/Files/DestinationSiteMismatchError.html +1 -1
- data/doc/Files/DirectConnectionInfo.html +1 -1
- data/doc/Files/DnsRecord.html +1 -1
- data/doc/Files/DoesNotSupportSortingError.html +1 -1
- data/doc/Files/DuplicateShareRecipientError.html +1 -1
- data/doc/Files/EmailIncomingMessage.html +1 -1
- data/doc/Files/EmailLog.html +1 -1
- data/doc/Files/Error.html +2 -2
- data/doc/Files/Errors.html +1 -1
- data/doc/Files/EventChannel.html +1 -1
- data/doc/Files/EventDeliveryAttempt.html +1 -1
- data/doc/Files/EventRecord.html +1 -1
- data/doc/Files/EventSubscription.html +1 -1
- data/doc/Files/EventTarget.html +1 -1
- data/doc/Files/ExavaultApiRequestLog.html +1 -1
- data/doc/Files/ExceededRuntimeLimitError.html +1 -1
- data/doc/Files/Expectation.html +1 -1
- data/doc/Files/ExpectationAlreadyHasOpenWindowError.html +1 -1
- data/doc/Files/ExpectationEvaluation.html +1 -1
- data/doc/Files/ExpectationIncident.html +1 -1
- data/doc/Files/ExpectationNotManualTriggerError.html +1 -1
- data/doc/Files/ExpiredPrivateKeyError.html +1 -1
- data/doc/Files/ExpiredPublicKeyError.html +1 -1
- data/doc/Files/ExportFailureError.html +1 -1
- data/doc/Files/ExportNotReadyError.html +1 -1
- data/doc/Files/ExternalEvent.html +1 -1
- data/doc/Files/FailedToChangePasswordError.html +1 -1
- data/doc/Files/File.html +2019 -1515
- data/doc/Files/FileAction.html +1 -1
- data/doc/Files/FileActionError.html +1 -1
- data/doc/Files/FileComment.html +1 -1
- data/doc/Files/FileCommentReaction.html +1 -1
- data/doc/Files/FileLockedError.html +1 -1
- data/doc/Files/FileMigration.html +1 -1
- data/doc/Files/FileMigrationLog.html +1 -1
- data/doc/Files/FileNotFoundError.html +1 -1
- data/doc/Files/FileNotUploadedError.html +1 -1
- data/doc/Files/FilePendingProcessingError.html +1 -1
- data/doc/Files/FileProcessingErrorError.html +1 -1
- data/doc/Files/FileTooBigToDecryptError.html +1 -1
- data/doc/Files/FileTooBigToEncryptError.html +1 -1
- data/doc/Files/FileUploadNotFoundError.html +1 -1
- data/doc/Files/FileUploadPart.html +1 -1
- data/doc/Files/FileUploadedToWrongRegionError.html +1 -1
- data/doc/Files/FileUtils.html +1 -1
- data/doc/Files/FilenameTooLongError.html +1 -1
- data/doc/Files/FilesAgentFailedAuthorizationError.html +1 -1
- data/doc/Files/FilesNativeStorageOverloadedError.html +1 -1
- data/doc/Files/Folder.html +1 -1
- data/doc/Files/FolderAdminOrBillingPermissionRequiredError.html +1 -1
- data/doc/Files/FolderAdminPermissionRequiredError.html +1 -1
- data/doc/Files/FolderLockedError.html +1 -1
- data/doc/Files/FolderMustNotBeAFileError.html +1 -1
- data/doc/Files/FolderNotEmptyError.html +1 -1
- data/doc/Files/FoldersNotAllowedError.html +1 -1
- data/doc/Files/FormField.html +1 -1
- data/doc/Files/FormFieldSet.html +1 -1
- data/doc/Files/FtpActionLog.html +1 -1
- data/doc/Files/FullPermissionRequiredError.html +1 -1
- data/doc/Files/GpgKey.html +1 -1
- data/doc/Files/Group.html +1 -1
- data/doc/Files/GroupNotFoundError.html +1 -1
- data/doc/Files/GroupUser.html +1 -1
- data/doc/Files/History.html +1 -1
- data/doc/Files/HistoryExport.html +1 -1
- data/doc/Files/HistoryExportResult.html +1 -1
- data/doc/Files/HistoryPermissionRequiredError.html +1 -1
- data/doc/Files/HistoryUnavailableError.html +1 -1
- data/doc/Files/HolidayCalendar.html +1 -1
- data/doc/Files/HolidayRegion.html +1 -1
- data/doc/Files/Image.html +1 -1
- data/doc/Files/InAppAiAssistantUnavailableError.html +1 -1
- data/doc/Files/InboundS3Log.html +1 -1
- data/doc/Files/InboxNotFoundError.html +1 -1
- data/doc/Files/InboxRecipient.html +1 -1
- data/doc/Files/InboxRegistration.html +1 -1
- data/doc/Files/InboxRegistrationCodeFailedError.html +1 -1
- data/doc/Files/InboxUpload.html +1 -1
- data/doc/Files/InsufficientPermissionForParamsError.html +1 -1
- data/doc/Files/InsufficientPermissionForSiteError.html +1 -1
- data/doc/Files/IntegrationCentricProfile.html +1 -1
- data/doc/Files/InternalGeneralErrorError.html +1 -1
- data/doc/Files/InvalidBodyError.html +1 -1
- data/doc/Files/InvalidBundleCodeError.html +1 -1
- data/doc/Files/InvalidCredentialsError.html +1 -1
- data/doc/Files/InvalidCursorError.html +1 -1
- data/doc/Files/InvalidCursorTypeForSortError.html +1 -1
- data/doc/Files/InvalidEtagsError.html +1 -1
- data/doc/Files/InvalidFileTypeError.html +1 -1
- data/doc/Files/InvalidFilenameError.html +1 -1
- data/doc/Files/InvalidFilterAliasCombinationError.html +1 -1
- data/doc/Files/InvalidFilterFieldError.html +1 -1
- data/doc/Files/InvalidFilterParamError.html +1 -1
- data/doc/Files/InvalidFilterParamFormatError.html +1 -1
- data/doc/Files/InvalidFilterParamValueError.html +1 -1
- data/doc/Files/InvalidInputEncodingError.html +1 -1
- data/doc/Files/InvalidInterfaceError.html +1 -1
- data/doc/Files/InvalidOauthError.html +1 -1
- data/doc/Files/InvalidOauthProviderError.html +1 -1
- data/doc/Files/InvalidOrExpiredCodeError.html +1 -1
- data/doc/Files/InvalidParameterError.html +5 -1
- data/doc/Files/InvalidPathError.html +1 -1
- data/doc/Files/InvalidPriorityColorError.html +1 -1
- data/doc/Files/InvalidRangeError.html +1 -1
- data/doc/Files/InvalidReturnToUrlError.html +1 -1
- data/doc/Files/InvalidSearchQueryError.html +1 -1
- data/doc/Files/InvalidSessionError.html +1 -1
- data/doc/Files/InvalidSiteError.html +1 -1
- data/doc/Files/InvalidSortFieldError.html +1 -1
- data/doc/Files/InvalidSortFilterCombinationError.html +1 -1
- data/doc/Files/InvalidUploadOffsetError.html +1 -1
- data/doc/Files/InvalidUploadPartGapError.html +1 -1
- data/doc/Files/InvalidUploadPartSizeError.html +1 -1
- data/doc/Files/InvalidUsernameOrPasswordError.html +1 -1
- data/doc/Files/InvalidWorkspaceIdHeaderError.html +1 -1
- data/doc/Files/InvalidZipFileError.html +1 -1
- data/doc/Files/Invoice.html +1 -1
- data/doc/Files/InvoiceLineItem.html +1 -1
- data/doc/Files/IpAddress.html +1 -1
- data/doc/Files/KeyLifecycleRule.html +1 -1
- data/doc/Files/List.html +1 -1
- data/doc/Files/Lock.html +1 -1
- data/doc/Files/LockOperationBusyError.html +1 -1
- data/doc/Files/LockedOutError.html +1 -1
- data/doc/Files/LockoutRegionMismatchError.html +1 -1
- data/doc/Files/MetadataCategory.html +1 -1
- data/doc/Files/MetadataNotSupportedOnRemotesError.html +1 -1
- data/doc/Files/MethodNotAllowedError.html +1 -1
- data/doc/Files/MigrationInProgressError.html +1 -1
- data/doc/Files/MissingParameterError.html +1 -1
- data/doc/Files/ModelSaveErrorError.html +1 -1
- data/doc/Files/MoverAccessDeniedError.html +1 -1
- data/doc/Files/MoverPackageRequiredError.html +1 -1
- data/doc/Files/MultipleProcessingErrorsError.html +1 -1
- data/doc/Files/MultipleSortParamsNotAllowedError.html +1 -1
- data/doc/Files/MustAuthenticateWithApiKeyError.html +1 -1
- data/doc/Files/NeedAdminPermissionForInboxError.html +1 -1
- data/doc/Files/NestedNotFoundError.html +1 -1
- data/doc/Files/NoAccountForSiteError.html +1 -1
- data/doc/Files/NoValidInputParamsError.html +1 -1
- data/doc/Files/NonAdminsMustQueryByFolderOrPathError.html +1 -1
- data/doc/Files/NotAllowedToCreateBundleError.html +1 -1
- data/doc/Files/NotAuthenticatedError.html +1 -1
- data/doc/Files/NotAuthorizedError.html +1 -1
- data/doc/Files/NotEnqueuableSyncError.html +1 -1
- data/doc/Files/NotFoundError.html +1 -1
- data/doc/Files/NotImplementedError.html +1 -1
- data/doc/Files/Notification.html +1 -1
- data/doc/Files/OffsetUploadNotAllowedWithMalwareScanningError.html +1 -1
- data/doc/Files/OneTimePasswordIncorrectError.html +1 -1
- data/doc/Files/OutboundConnectionLog.html +1 -1
- data/doc/Files/PartNumberTooLargeError.html +1 -1
- data/doc/Files/Partner.html +1 -1
- data/doc/Files/PartnerChannel.html +1 -1
- data/doc/Files/PartnerChannelTemplate.html +1 -1
- data/doc/Files/PartnerConnection.html +1 -1
- data/doc/Files/PartnerSite.html +1 -1
- data/doc/Files/PartnerSiteRequest.html +1 -1
- data/doc/Files/PasswordChangeNotRequiredError.html +1 -1
- data/doc/Files/PasswordChangeRequiredError.html +1 -1
- data/doc/Files/PathCannotHaveTrailingWhitespaceError.html +1 -1
- data/doc/Files/PathTooLongError.html +1 -1
- data/doc/Files/PathUtil.html +1 -1
- data/doc/Files/Payment.html +1 -1
- data/doc/Files/PaymentLineItem.html +1 -1
- data/doc/Files/PaymentMethodErrorError.html +1 -1
- data/doc/Files/PendingWorkEvent.html +1 -1
- data/doc/Files/Permission.html +1 -1
- data/doc/Files/PlanNotFoundError.html +1 -1
- data/doc/Files/Preview.html +1 -1
- data/doc/Files/PreviewOnlyPermissionCannotDownloadError.html +1 -1
- data/doc/Files/ProcessingFailureError.html +1 -1
- data/doc/Files/PublicHostingRequestLog.html +1 -1
- data/doc/Files/PublicIpAddress.html +1 -1
- data/doc/Files/PublicKey.html +1 -1
- data/doc/Files/RateLimitedError.html +1 -1
- data/doc/Files/ReadOnlySessionError.html +1 -1
- data/doc/Files/ReadPermissionRequiredError.html +1 -1
- data/doc/Files/ReauthenticationFailedError.html +1 -1
- data/doc/Files/ReauthenticationFailedFinalError.html +1 -1
- data/doc/Files/ReauthenticationNeededActionError.html +1 -1
- data/doc/Files/ReauthenticationNeededFieldsError.html +1 -1
- data/doc/Files/ReauthenticationRateLimitedError.html +1 -1
- data/doc/Files/RecaptchaFailedError.html +1 -1
- data/doc/Files/RecipientAlreadySharedError.html +1 -1
- data/doc/Files/RemoteBandwidthSnapshot.html +1 -1
- data/doc/Files/RemoteDesktopDebugLoggingDisabledError.html +1 -1
- data/doc/Files/RemoteEntryReadOnlyError.html +1 -1
- data/doc/Files/RemoteMountBackend.html +1 -1
- data/doc/Files/RemoteServer.html +1 -1
- data/doc/Files/RemoteServerConfigurationFile.html +1 -1
- data/doc/Files/RemoteServerCredential.html +1 -1
- data/doc/Files/RemoteServerErrorError.html +1 -1
- data/doc/Files/Request.html +1 -1
- data/doc/Files/RequestBodyTooLargeError.html +1 -1
- data/doc/Files/RequestParamsContainInvalidCharacterError.html +1 -1
- data/doc/Files/RequestParamsInvalidError.html +1 -1
- data/doc/Files/RequestParamsRequiredError.html +1 -1
- data/doc/Files/ResourceBelongsToParentSiteError.html +1 -1
- data/doc/Files/ResourceLockedError.html +1 -1
- data/doc/Files/Response.html +1 -1
- data/doc/Files/Restore.html +1 -1
- data/doc/Files/RootFolderBehaviorSiteAdminRequiredError.html +1 -1
- data/doc/Files/RootFolderBehaviorSkipSiteAdminRequiredError.html +1 -1
- data/doc/Files/Schedule.html +1 -1
- data/doc/Files/ScheduledExport.html +1 -1
- data/doc/Files/ScimLog.html +1 -1
- data/doc/Files/SearchAllOnChildPathError.html +1 -1
- data/doc/Files/SearchUnavailableError.html +1 -1
- data/doc/Files/Secret.html +1 -1
- data/doc/Files/SelfManagedRequiredError.html +1 -1
- data/doc/Files/ServiceUnavailableError.html +1 -1
- data/doc/Files/Session.html +1 -1
- data/doc/Files/SettingsChange.html +1 -1
- data/doc/Files/SftpActionLog.html +1 -1
- data/doc/Files/SftpHostKey.html +1 -1
- data/doc/Files/ShareGroup.html +1 -1
- data/doc/Files/ShareGroupMember.html +1 -1
- data/doc/Files/SiemHttpDestination.html +1 -1
- data/doc/Files/SiemHttpDestinationEvent.html +1 -1
- data/doc/Files/Site.html +911 -731
- data/doc/Files/SiteAdminOrPartnerAdminPermissionRequiredError.html +1 -1
- data/doc/Files/SiteAdminOrWorkspaceAdminOrFolderAdminPermissionRequiredError.html +1 -1
- data/doc/Files/SiteAdminOrWorkspaceAdminOrPartnerAdminOrFolderAdminPermissionRequiredError.html +1 -1
- data/doc/Files/SiteAdminOrWorkspaceAdminOrPartnerAdminPermissionRequiredError.html +1 -1
- data/doc/Files/SiteAdminOrWorkspaceAdminPermissionRequiredError.html +1 -1
- data/doc/Files/SiteAdminRequiredError.html +1 -1
- data/doc/Files/SiteConfigurationError.html +1 -1
- data/doc/Files/SiteDisabledError.html +1 -1
- data/doc/Files/SiteFilesAreImmutableError.html +1 -1
- data/doc/Files/SiteNotFoundError.html +1 -1
- data/doc/Files/SiteSubdomainRedirect.html +1 -1
- data/doc/Files/SiteWasRemovedError.html +1 -1
- data/doc/Files/SizableIO.html +1 -1
- data/doc/Files/Snapshot.html +1 -1
- data/doc/Files/SsoEvent.html +1 -1
- data/doc/Files/SsoStrategy.html +1 -1
- data/doc/Files/Status.html +1 -1
- data/doc/Files/Style.html +1 -1
- data/doc/Files/SubfolderLockedError.html +1 -1
- data/doc/Files/Sync.html +1 -1
- data/doc/Files/SyncInProgressError.html +1 -1
- data/doc/Files/SyncLog.html +1 -1
- data/doc/Files/SyncRun.html +1 -1
- data/doc/Files/SyncRunLiveTransfer.html +1 -1
- data/doc/Files/SystemProfiler.html +1 -1
- data/doc/Files/TooManyConcurrentLoginsError.html +1 -1
- data/doc/Files/TooManyConcurrentRequestsError.html +1 -1
- data/doc/Files/TooManyLoginAttemptsError.html +1 -1
- data/doc/Files/TooManyRequestsError.html +1 -1
- data/doc/Files/TooManySharesError.html +1 -1
- data/doc/Files/Transfer/BufferLimitError.html +175 -0
- data/doc/Files/Transfer/ByteBudget/Reservation.html +301 -0
- data/doc/Files/Transfer/ByteBudget.html +748 -0
- data/doc/Files/Transfer/CancelledError.html +235 -0
- data/doc/Files/Transfer/Checkpoint.html +1371 -0
- data/doc/Files/Transfer/CheckpointError.html +173 -0
- data/doc/Files/Transfer/ClientTransport/ClientResponse.html +661 -0
- data/doc/Files/Transfer/ClientTransport/Reader.html +530 -0
- data/doc/Files/Transfer/ClientTransport.html +675 -0
- data/doc/Files/Transfer/Clock.html +189 -0
- data/doc/Files/Transfer/Control.html +667 -0
- data/doc/Files/Transfer/Controller/Attempt.html +465 -0
- data/doc/Files/Transfer/Controller.html +1166 -0
- data/doc/Files/Transfer/Coordinator/Timing.html +568 -0
- data/doc/Files/Transfer/Coordinator.html +534 -0
- data/doc/Files/Transfer/DownloadCoordinator/FileSink.html +976 -0
- data/doc/Files/Transfer/DownloadCoordinator/IoSink.html +1168 -0
- data/doc/Files/Transfer/DownloadCoordinator/Piece.html +875 -0
- data/doc/Files/Transfer/DownloadCoordinator.html +728 -0
- data/doc/Files/Transfer/FileSlots.html +480 -0
- data/doc/Files/Transfer/FrontendResponseError.html +235 -0
- data/doc/Files/Transfer/Holds.html +505 -0
- data/doc/Files/Transfer/HttpTransport.html +579 -0
- data/doc/Files/Transfer/Job.html +2338 -0
- data/doc/Files/Transfer/Options.html +924 -0
- data/doc/Files/Transfer/PausedError.html +319 -0
- data/doc/Files/Transfer/Policy.html +1642 -0
- data/doc/Files/Transfer/RequestPermits.html +160 -0
- data/doc/Files/Transfer/SourceChangedError.html +235 -0
- data/doc/Files/Transfer/StorageResponse.html +546 -0
- data/doc/Files/Transfer/StorageRetry.html +1098 -0
- data/doc/Files/Transfer/UploadCoordinator/Grant.html +1048 -0
- data/doc/Files/Transfer/UploadCoordinator/Part.html +1048 -0
- data/doc/Files/Transfer/UploadCoordinator/Region.html +295 -0
- data/doc/Files/Transfer/UploadCoordinator/Segments.html +299 -0
- data/doc/Files/Transfer/UploadCoordinator/Source.html +725 -0
- data/doc/Files/Transfer/UploadCoordinator/StreamSource.html +664 -0
- data/doc/Files/Transfer/UploadCoordinator.html +546 -0
- data/doc/Files/Transfer/UploadPlan.html +522 -0
- data/doc/Files/Transfer/VersionChangedError.html +235 -0
- data/doc/Files/Transfer.html +134 -0
- data/doc/Files/TrialExpiredError.html +1 -1
- data/doc/Files/TrialLockedError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationCodeAlreadySentError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationCountryBlacklistedError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationErrorError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationGeneralErrorError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationMethodUnsupportedErrorError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationRequiredError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationSetupExpiredError.html +1 -1
- data/doc/Files/TwoFactorAuthenticationUnsubscribedRecipientError.html +1 -1
- data/doc/Files/URI.html +1 -1
- data/doc/Files/UnrecognizedSortIndexError.html +1 -1
- data/doc/Files/UnsupportedCurrencyError.html +1 -1
- data/doc/Files/UnsupportedHttpResponseFormatError.html +1 -1
- data/doc/Files/UnsupportedMediaTypeError.html +1 -1
- data/doc/Files/UpdatesNotAllowedForRemotesError.html +1 -1
- data/doc/Files/UploadsUnavailableError.html +1 -1
- data/doc/Files/UsageByTopLevelDir.html +1 -1
- data/doc/Files/UsageDailySnapshot.html +1 -1
- data/doc/Files/UsageSnapshot.html +1 -1
- data/doc/Files/User.html +597 -386
- data/doc/Files/UserAdditionalEmailRecipient.html +1 -1
- data/doc/Files/UserCipherUse.html +1 -1
- data/doc/Files/UserIdInvalidError.html +1 -1
- data/doc/Files/UserIdOnUserEndpointError.html +1 -1
- data/doc/Files/UserIdWithoutSiteAdminError.html +1 -1
- data/doc/Files/UserLifecycleRule.html +1 -1
- data/doc/Files/UserNotFoundError.html +1 -1
- data/doc/Files/UserRequest.html +1 -1
- data/doc/Files/UserRequestsEnabledRequiredError.html +1 -1
- data/doc/Files/UserRequiredError.html +1 -1
- data/doc/Files/UserSecurityEvent.html +1 -1
- data/doc/Files/UserSftpClientUse.html +1 -1
- data/doc/Files/Util/LogSettings.html +1 -1
- data/doc/Files/Util.html +1 -1
- data/doc/Files/WebDavActionLog.html +1 -1
- data/doc/Files/WebhookTest.html +1 -1
- data/doc/Files/Workspace.html +1 -1
- data/doc/Files/WriteAndBundlePermissionRequiredError.html +1 -1
- data/doc/Files/WritePermissionRequiredError.html +1 -1
- data/doc/Files/ZipListEntry.html +1 -1
- data/doc/Files.html +116 -116
- data/doc/_index.html +314 -4
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +1 -1
- data/doc/index.html +1 -1
- data/doc/method_list.html +5368 -3048
- data/doc/top-level-namespace.html +1 -1
- data/docs/file.md +346 -0
- data/docs/site.md +10 -0
- data/docs/user.md +8 -0
- data/lib/files.com/api.rb +6 -1
- data/lib/files.com/api_client.rb +220 -32
- data/lib/files.com/models/file.rb +124 -17
- data/lib/files.com/models/site.rb +16 -0
- data/lib/files.com/models/user.rb +19 -0
- data/lib/files.com/transfer/budgets.rb +123 -0
- data/lib/files.com/transfer/checkpoint.rb +113 -0
- data/lib/files.com/transfer/clock.rb +14 -0
- data/lib/files.com/transfer/controller.rb +549 -0
- data/lib/files.com/transfer/download_coordinator.rb +906 -0
- data/lib/files.com/transfer/errors.rb +100 -0
- data/lib/files.com/transfer/http_transport.rb +337 -0
- data/lib/files.com/transfer/job.rb +778 -0
- data/lib/files.com/transfer/options.rb +126 -0
- data/lib/files.com/transfer/policy.rb +91 -0
- data/lib/files.com/transfer/storage_retry.rb +169 -0
- data/lib/files.com/transfer/upload_coordinator.rb +657 -0
- data/lib/files.com/transfer/upload_plan.rb +157 -0
- data/lib/files.com.rb +13 -0
- data/spec/lib/api_client_spec.rb +125 -3
- data/spec/models/file_transfer_spec.rb +53 -4
- data/spec/support/transfer_server.rb +113 -14
- data/spec/transfer/adaptive_download_spec.rb +1102 -0
- data/spec/transfer/adaptive_upload_spec.rb +1602 -0
- data/spec/transfer/concurrency_controller_spec.rb +382 -0
- data/spec/workspace_id_spec.rb +19 -14
- metadata +59 -1
|
@@ -0,0 +1,1098 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html>
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>
|
|
7
|
+
Module: Files::Transfer::StorageRetry
|
|
8
|
+
|
|
9
|
+
— Documentation by YARD 0.9.45
|
|
10
|
+
|
|
11
|
+
</title>
|
|
12
|
+
|
|
13
|
+
<link rel="stylesheet" href="../../css/style.css" type="text/css">
|
|
14
|
+
|
|
15
|
+
<link rel="stylesheet" href="../../css/common.css" type="text/css">
|
|
16
|
+
|
|
17
|
+
<script type="text/javascript">
|
|
18
|
+
pathId = "Files::Transfer::StorageRetry";
|
|
19
|
+
relpath = '../../';
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
|
24
|
+
|
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
</head>
|
|
29
|
+
<body>
|
|
30
|
+
<div id="main_progress" aria-hidden="true"></div>
|
|
31
|
+
|
|
32
|
+
<div class="nav_wrap">
|
|
33
|
+
<iframe id="nav" src="../../class_list.html?1"></iframe>
|
|
34
|
+
<div id="resizer"></div>
|
|
35
|
+
</div>
|
|
36
|
+
|
|
37
|
+
<div id="main" tabindex="-1">
|
|
38
|
+
<div id="header">
|
|
39
|
+
<div id="menu">
|
|
40
|
+
|
|
41
|
+
<a href="../../_index.html">Index (S)</a> »
|
|
42
|
+
<span class='title'><span class='object_link'><a href="../../Files.html" title="Files (module)">Files</a></span></span> » <span class='title'><span class='object_link'><a href="../Transfer.html" title="Files::Transfer (module)">Transfer</a></span></span>
|
|
43
|
+
»
|
|
44
|
+
<span class="title">StorageRetry</span>
|
|
45
|
+
|
|
46
|
+
</div>
|
|
47
|
+
|
|
48
|
+
<div id="search">
|
|
49
|
+
|
|
50
|
+
<a class="full_list_link" id="class_list_link"
|
|
51
|
+
href="../../class_list.html">
|
|
52
|
+
|
|
53
|
+
<svg width="24" height="24">
|
|
54
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
|
55
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
|
56
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
|
57
|
+
</svg>
|
|
58
|
+
</a>
|
|
59
|
+
|
|
60
|
+
</div>
|
|
61
|
+
<div class="clear"></div>
|
|
62
|
+
</div>
|
|
63
|
+
|
|
64
|
+
<div id="content"><h1>Module: Files::Transfer::StorageRetry
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
</h1>
|
|
69
|
+
<div class="box_info">
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
<dl>
|
|
82
|
+
<dt>Defined in:</dt>
|
|
83
|
+
<dd>lib/files.com/transfer/storage_retry.rb
|
|
84
|
+
</dd>
|
|
85
|
+
</dl>
|
|
86
|
+
|
|
87
|
+
</div>
|
|
88
|
+
|
|
89
|
+
<h2>Overview</h2><div class="docstring">
|
|
90
|
+
<div class="discussion">
|
|
91
|
+
<p>What a storage response means for the request that got it, and when a signed URL stops working.</p>
|
|
92
|
+
<p>429 and 503 are throttles, retried after their whole Retry-After (seconds or an HTTP date) or at once without
|
|
93
|
+
one; a Retry-After too large to schedule refuses the request instead. 500, 502, 504, a network failure and S3's
|
|
94
|
+
RequestTimeout error (a 400 whose whole body, of at most 64 KiB, is a complete, DTD-free XML document whose
|
|
95
|
+
unnamespaced root <Error> has a direct <Code>RequestTimeout</Code>) are retried after 100 ms. Throttles hold the
|
|
96
|
+
destination back for every request of the job (Holds). Anything else is refused: 501, the other 4xx,
|
|
97
|
+
3xx (redirects are never followed) and a success that does not acknowledge the part. Each retry is a new
|
|
98
|
+
admission, within the caller's Files.max_network_retries, and never for a part whose instructions say
|
|
99
|
+
retry_parts: false.</p>
|
|
100
|
+
|
|
101
|
+
</div>
|
|
102
|
+
</div>
|
|
103
|
+
<div class="tags">
|
|
104
|
+
|
|
105
|
+
|
|
106
|
+
</div>
|
|
107
|
+
|
|
108
|
+
<h2>
|
|
109
|
+
Constant Summary
|
|
110
|
+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
|
|
111
|
+
</h2>
|
|
112
|
+
|
|
113
|
+
<dl class="constants">
|
|
114
|
+
|
|
115
|
+
<dt id="THROTTLE_STATUSES-constant" class="">THROTTLE_STATUSES =
|
|
116
|
+
|
|
117
|
+
</dt>
|
|
118
|
+
<dd><pre class="code"><span class='lbracket'>[</span> <span class='int'>429</span><span class='comma'>,</span> <span class='int'>503</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
|
119
|
+
|
|
120
|
+
<dt id="RETRY_STATUSES-constant" class="">RETRY_STATUSES =
|
|
121
|
+
|
|
122
|
+
</dt>
|
|
123
|
+
<dd><pre class="code"><span class='lbracket'>[</span> <span class='int'>500</span><span class='comma'>,</span> <span class='int'>502</span><span class='comma'>,</span> <span class='int'>504</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
|
124
|
+
|
|
125
|
+
<dt id="RETRY_DELAY-constant" class="">RETRY_DELAY =
|
|
126
|
+
|
|
127
|
+
</dt>
|
|
128
|
+
<dd><pre class="code"><span class='float'>0.1</span></pre></dd>
|
|
129
|
+
|
|
130
|
+
<dt id="EXPIRY_MARGIN-constant" class="">EXPIRY_MARGIN =
|
|
131
|
+
<div class="docstring">
|
|
132
|
+
<div class="discussion">
|
|
133
|
+
<p>Seconds before a signed URL's expiry at which it is renewed rather than used.</p>
|
|
134
|
+
|
|
135
|
+
</div>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="tags">
|
|
138
|
+
|
|
139
|
+
|
|
140
|
+
</div>
|
|
141
|
+
</dt>
|
|
142
|
+
<dd><pre class="code"><span class='int'>5</span></pre></dd>
|
|
143
|
+
|
|
144
|
+
<dt id="FRONTEND_HEADER-constant" class="">FRONTEND_HEADER =
|
|
145
|
+
|
|
146
|
+
</dt>
|
|
147
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>x-files-frontend-app</span><span class='tstring_end'>"</span></span></pre></dd>
|
|
148
|
+
|
|
149
|
+
<dt id="XML_MAX_BYTES-constant" class="">XML_MAX_BYTES =
|
|
150
|
+
<div class="docstring">
|
|
151
|
+
<div class="discussion">
|
|
152
|
+
<p>The most of a 400's body judged, which bounds the XML checked.</p>
|
|
153
|
+
|
|
154
|
+
</div>
|
|
155
|
+
</div>
|
|
156
|
+
<div class="tags">
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
</div>
|
|
160
|
+
</dt>
|
|
161
|
+
<dd><pre class="code"><span class='int'>64</span> <span class='op'>*</span> <span class='int'>1024</span></pre></dd>
|
|
162
|
+
|
|
163
|
+
<dt id="XML_DECLARATION-constant" class="">XML_DECLARATION =
|
|
164
|
+
<div class="docstring">
|
|
165
|
+
<div class="discussion">
|
|
166
|
+
<p>An XML declaration, accepted only at the very start of the body.</p>
|
|
167
|
+
|
|
168
|
+
</div>
|
|
169
|
+
</div>
|
|
170
|
+
<div class="tags">
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
</div>
|
|
174
|
+
</dt>
|
|
175
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A<\?xml\s+version\s*=\s*(["'])1\.[0-9]+\1(?:\s+encoding\s*=\s*(["'])[A-Za-z][A-Za-z0-9._-]*\2)?(?:\s+standalone\s*=\s*(["'])(?:yes|no)\3)?\s*\?></span><span class='regexp_end'>/</span></span></pre></dd>
|
|
176
|
+
|
|
177
|
+
<dt id="XML_REFERENCE-constant" class="">XML_REFERENCE =
|
|
178
|
+
<div class="docstring">
|
|
179
|
+
<div class="discussion">
|
|
180
|
+
<p>A predefined entity or a character reference: no other entity can be defined, since a DTD is never accepted.</p>
|
|
181
|
+
|
|
182
|
+
</div>
|
|
183
|
+
</div>
|
|
184
|
+
<div class="tags">
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
</div>
|
|
188
|
+
</dt>
|
|
189
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>&(?:amp|lt|gt|quot|apos|#[0-9]+|#x\h+);</span><span class='tstring_end'>'</span></span></pre></dd>
|
|
190
|
+
|
|
191
|
+
<dt id="XML_VALUE-constant" class="">XML_VALUE =
|
|
192
|
+
|
|
193
|
+
</dt>
|
|
194
|
+
<dd><pre class="code"><span class='tstring'><span class='tstring_beg'>%{</span><span class='tstring_content'>(?:"(?:[^"<&]|</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#XML_REFERENCE-constant" title="Files::Transfer::StorageRetry::XML_REFERENCE (constant)">XML_REFERENCE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>)*"|'(?:[^'<&]|</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#XML_REFERENCE-constant" title="Files::Transfer::StorageRetry::XML_REFERENCE (constant)">XML_REFERENCE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>)*')</span><span class='tstring_end'>}</span></span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
|
195
|
+
|
|
196
|
+
<dt id="XML_ATTRIBUTE-constant" class="">XML_ATTRIBUTE =
|
|
197
|
+
<div class="docstring">
|
|
198
|
+
<div class="discussion">
|
|
199
|
+
<p>One attribute: its name, with any prefix, and its quoted value.</p>
|
|
200
|
+
|
|
201
|
+
</div>
|
|
202
|
+
</div>
|
|
203
|
+
<div class="tags">
|
|
204
|
+
|
|
205
|
+
|
|
206
|
+
</div>
|
|
207
|
+
</dt>
|
|
208
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\s+([A-Za-z_][\w.:-]*)\s*=\s*(</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#XML_VALUE-constant" title="Files::Transfer::StorageRetry::XML_VALUE (constant)">XML_VALUE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='regexp_end'>/</span></span></pre></dd>
|
|
209
|
+
|
|
210
|
+
<dt id="XML_TOKEN-constant" class="">XML_TOKEN =
|
|
211
|
+
<div class="docstring">
|
|
212
|
+
<div class="discussion">
|
|
213
|
+
<p>A start, end or empty-element tag, with its attributes, or character data. A comment, processing instruction,
|
|
214
|
+
CDATA section or DTD matches nothing, so a body holding one is refused, as is a prefixed element name.</p>
|
|
215
|
+
|
|
216
|
+
</div>
|
|
217
|
+
</div>
|
|
218
|
+
<div class="tags">
|
|
219
|
+
|
|
220
|
+
|
|
221
|
+
</div>
|
|
222
|
+
</dt>
|
|
223
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\G(?:<(\/?)([A-Za-z_][\w.-]*)((?:\s+[A-Za-z_][\w.:-]*\s*=\s*</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#XML_VALUE-constant" title="Files::Transfer::StorageRetry::XML_VALUE (constant)">XML_VALUE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>)*)\s*(\/?)>|((?:[^<&]|</span><span class='embexpr_beg'>#{</span><span class='const'><span class='object_link'><a href="#XML_REFERENCE-constant" title="Files::Transfer::StorageRetry::XML_REFERENCE (constant)">XML_REFERENCE</a></span></span><span class='embexpr_end'>}</span><span class='tstring_content'>)+))</span><span class='regexp_end'>/</span></span></pre></dd>
|
|
224
|
+
|
|
225
|
+
<dt id="XML_CHARACTER_REFERENCE-constant" class="">XML_CHARACTER_REFERENCE =
|
|
226
|
+
|
|
227
|
+
</dt>
|
|
228
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>&#(x\h+|[0-9]+);</span><span class='regexp_end'>/</span></span></pre></dd>
|
|
229
|
+
|
|
230
|
+
<dt id="XML_FORBIDDEN-constant" class="">XML_FORBIDDEN =
|
|
231
|
+
<div class="docstring">
|
|
232
|
+
<div class="discussion">
|
|
233
|
+
<p>Characters XML never allows: the C0 controls other than tab, newline and carriage return.</p>
|
|
234
|
+
|
|
235
|
+
</div>
|
|
236
|
+
</div>
|
|
237
|
+
<div class="tags">
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
</div>
|
|
241
|
+
</dt>
|
|
242
|
+
<dd><pre class="code"><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[\x00-\x08\x0B\x0C\x0E-\x1F]</span><span class='regexp_end'>/n</span></span></pre></dd>
|
|
243
|
+
|
|
244
|
+
<dt id="SIGNATURE_PARAMS-constant" class="">SIGNATURE_PARAMS =
|
|
245
|
+
|
|
246
|
+
</dt>
|
|
247
|
+
<dd><pre class="code"><span class='lbracket'>[</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>x-amz-date</span><span class='words_sep'> </span><span class='tstring_content'>x-amz-expires</span><span class='tstring_end'>]</span></span><span class='comma'>,</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>x-files-date</span><span class='words_sep'> </span><span class='tstring_content'>x-files-expires</span><span class='tstring_end'>]</span></span><span class='comma'>,</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>x-goog-date</span><span class='words_sep'> </span><span class='tstring_content'>x-goog-expires</span><span class='tstring_end'>]</span></span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span></pre></dd>
|
|
248
|
+
|
|
249
|
+
</dl>
|
|
250
|
+
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
|
|
259
|
+
<h2>
|
|
260
|
+
Class Method Summary
|
|
261
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
|
262
|
+
</h2>
|
|
263
|
+
|
|
264
|
+
<ul class="summary">
|
|
265
|
+
|
|
266
|
+
<li class="public ">
|
|
267
|
+
<span class="summary_signature">
|
|
268
|
+
|
|
269
|
+
<a href="#api_time-class_method" title="api_time (class method)">.<strong>api_time</strong>(value) ⇒ Object </a>
|
|
270
|
+
|
|
271
|
+
|
|
272
|
+
|
|
273
|
+
</span>
|
|
274
|
+
|
|
275
|
+
|
|
276
|
+
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
|
|
280
|
+
|
|
281
|
+
|
|
282
|
+
|
|
283
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
284
|
+
|
|
285
|
+
</li>
|
|
286
|
+
|
|
287
|
+
|
|
288
|
+
<li class="public ">
|
|
289
|
+
<span class="summary_signature">
|
|
290
|
+
|
|
291
|
+
<a href="#classify-class_method" title="classify (class method)">.<strong>classify</strong>(status, headers, body, truncated: false) ⇒ Object </a>
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
|
|
295
|
+
</span>
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
|
|
299
|
+
|
|
300
|
+
|
|
301
|
+
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
|
|
305
|
+
<span class="summary_desc"><div class='inline'><p>[:throttle, seconds], [:retry, seconds] or [:refuse] for a response that is not a success.</p></div></span>
|
|
306
|
+
|
|
307
|
+
</li>
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
<li class="public ">
|
|
311
|
+
<span class="summary_signature">
|
|
312
|
+
|
|
313
|
+
<a href="#compact_time-class_method" title="compact_time (class method)">.<strong>compact_time</strong>(text) ⇒ Object </a>
|
|
314
|
+
|
|
315
|
+
|
|
316
|
+
|
|
317
|
+
</span>
|
|
318
|
+
|
|
319
|
+
|
|
320
|
+
|
|
321
|
+
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
|
|
326
|
+
|
|
327
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
328
|
+
|
|
329
|
+
</li>
|
|
330
|
+
|
|
331
|
+
|
|
332
|
+
<li class="public ">
|
|
333
|
+
<span class="summary_signature">
|
|
334
|
+
|
|
335
|
+
<a href="#expired%3F-class_method" title="expired? (class method)">.<strong>expired?</strong>(expires_at, now: Time.now) ⇒ Boolean </a>
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
</span>
|
|
340
|
+
|
|
341
|
+
|
|
342
|
+
|
|
343
|
+
|
|
344
|
+
|
|
345
|
+
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
|
|
349
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
350
|
+
|
|
351
|
+
</li>
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
<li class="public ">
|
|
355
|
+
<span class="summary_signature">
|
|
356
|
+
|
|
357
|
+
<a href="#expires_at-class_method" title="expires_at (class method)">.<strong>expires_at</strong>(url, api_expires = nil) ⇒ Object </a>
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
|
|
361
|
+
</span>
|
|
362
|
+
|
|
363
|
+
|
|
364
|
+
|
|
365
|
+
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
|
|
369
|
+
|
|
370
|
+
|
|
371
|
+
<span class="summary_desc"><div class='inline'><p>The earliest of the API's expires and the expiry the signed URL states: S3's X-Amz-Date plus X-Amz-Expires, the same X-Files- and X-Goog- parameters, or an Azure SAS's se.</p></div></span>
|
|
372
|
+
|
|
373
|
+
</li>
|
|
374
|
+
|
|
375
|
+
|
|
376
|
+
<li class="public ">
|
|
377
|
+
<span class="summary_signature">
|
|
378
|
+
|
|
379
|
+
<a href="#frontend%3F-class_method" title="frontend? (class method)">.<strong>frontend?</strong>(headers) ⇒ Boolean </a>
|
|
380
|
+
|
|
381
|
+
|
|
382
|
+
|
|
383
|
+
</span>
|
|
384
|
+
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
|
|
388
|
+
|
|
389
|
+
|
|
390
|
+
|
|
391
|
+
|
|
392
|
+
|
|
393
|
+
<span class="summary_desc"><div class='inline'></div></span>
|
|
394
|
+
|
|
395
|
+
</li>
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
<li class="public ">
|
|
399
|
+
<span class="summary_signature">
|
|
400
|
+
|
|
401
|
+
<a href="#request_timeout%3F-class_method" title="request_timeout? (class method)">.<strong>request_timeout?</strong>(body) ⇒ Boolean </a>
|
|
402
|
+
|
|
403
|
+
|
|
404
|
+
|
|
405
|
+
</span>
|
|
406
|
+
|
|
407
|
+
|
|
408
|
+
|
|
409
|
+
|
|
410
|
+
|
|
411
|
+
|
|
412
|
+
|
|
413
|
+
|
|
414
|
+
|
|
415
|
+
<span class="summary_desc"><div class='inline'><p>Whether body is exactly S3's RequestTimeout error: a well-formed XML document of at most 64 KiB in UTF-8, with no DTD, comment, processing instruction (but an XML declaration at its start), CDATA section or entity but the predefined ones, no namespace (neither an xmlns declaration nor a prefix on any element or attribute), no repeated attribute and no character XML disallows, whose root is <Error> with a single direct <Code> child holding only RequestTimeout.</p></div></span>
|
|
416
|
+
|
|
417
|
+
</li>
|
|
418
|
+
|
|
419
|
+
|
|
420
|
+
<li class="public ">
|
|
421
|
+
<span class="summary_signature">
|
|
422
|
+
|
|
423
|
+
<a href="#retry_after-class_method" title="retry_after (class method)">.<strong>retry_after</strong>(value, now: Time.now) ⇒ Object </a>
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
|
|
427
|
+
</span>
|
|
428
|
+
|
|
429
|
+
|
|
430
|
+
|
|
431
|
+
|
|
432
|
+
|
|
433
|
+
|
|
434
|
+
|
|
435
|
+
|
|
436
|
+
|
|
437
|
+
<span class="summary_desc"><div class='inline'><p>Seconds to wait, never negative and never shortened.</p></div></span>
|
|
438
|
+
|
|
439
|
+
</li>
|
|
440
|
+
|
|
441
|
+
|
|
442
|
+
<li class="public ">
|
|
443
|
+
<span class="summary_signature">
|
|
444
|
+
|
|
445
|
+
<a href="#valid_xml_attributes%3F-class_method" title="valid_xml_attributes? (class method)">.<strong>valid_xml_attributes?</strong>(attributes) ⇒ Boolean </a>
|
|
446
|
+
|
|
447
|
+
|
|
448
|
+
|
|
449
|
+
</span>
|
|
450
|
+
|
|
451
|
+
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
|
|
458
|
+
|
|
459
|
+
<span class="summary_desc"><div class='inline'><p>A tag's attributes: none in a namespace (no xmlns declaration, no prefix), none named twice, and each value well formed.</p></div></span>
|
|
460
|
+
|
|
461
|
+
</li>
|
|
462
|
+
|
|
463
|
+
|
|
464
|
+
<li class="public ">
|
|
465
|
+
<span class="summary_signature">
|
|
466
|
+
|
|
467
|
+
<a href="#valid_xml_text%3F-class_method" title="valid_xml_text? (class method)">.<strong>valid_xml_text?</strong>(text) ⇒ Boolean </a>
|
|
468
|
+
|
|
469
|
+
|
|
470
|
+
|
|
471
|
+
</span>
|
|
472
|
+
|
|
473
|
+
|
|
474
|
+
|
|
475
|
+
|
|
476
|
+
|
|
477
|
+
|
|
478
|
+
|
|
479
|
+
|
|
480
|
+
|
|
481
|
+
<span class="summary_desc"><div class='inline'><p>Character data or an attribute value: without "]]>", and with character references only to characters XML allows.</p></div></span>
|
|
482
|
+
|
|
483
|
+
</li>
|
|
484
|
+
|
|
485
|
+
|
|
486
|
+
</ul>
|
|
487
|
+
|
|
488
|
+
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
<div id="class_method_details" class="method_details_list">
|
|
493
|
+
<h2>Class Method Details</h2>
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
<div class="method_details first">
|
|
497
|
+
<h3 class="signature first" id="api_time-class_method">
|
|
498
|
+
|
|
499
|
+
.<strong>api_time</strong>(value) ⇒ <tt>Object</tt>
|
|
500
|
+
|
|
501
|
+
|
|
502
|
+
|
|
503
|
+
|
|
504
|
+
|
|
505
|
+
</h3><table class="source_code">
|
|
506
|
+
<tr>
|
|
507
|
+
<td>
|
|
508
|
+
<pre class="lines">
|
|
509
|
+
|
|
510
|
+
|
|
511
|
+
159
|
|
512
|
+
160
|
|
513
|
+
161
|
|
514
|
+
162
|
|
515
|
+
163
|
|
516
|
+
164
|
|
517
|
+
165
|
|
518
|
+
166</pre>
|
|
519
|
+
</td>
|
|
520
|
+
<td>
|
|
521
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 159</span>
|
|
522
|
+
|
|
523
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_api_time'>api_time</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
|
524
|
+
<span class='kw'>case</span> <span class='id identifier rubyid_value'>value</span>
|
|
525
|
+
<span class='kw'>when</span> <span class='const'>Time</span> <span class='kw'>then</span> <span class='id identifier rubyid_value'>value</span>
|
|
526
|
+
<span class='kw'>when</span> <span class='const'>String</span> <span class='kw'>then</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_iso8601'>iso8601</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
|
527
|
+
<span class='kw'>end</span>
|
|
528
|
+
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
|
529
|
+
<span class='kw'>nil</span>
|
|
530
|
+
<span class='kw'>end</span></pre>
|
|
531
|
+
</td>
|
|
532
|
+
</tr>
|
|
533
|
+
</table>
|
|
534
|
+
</div>
|
|
535
|
+
|
|
536
|
+
<div class="method_details ">
|
|
537
|
+
<h3 class="signature " id="classify-class_method">
|
|
538
|
+
|
|
539
|
+
.<strong>classify</strong>(status, headers, body, truncated: false) ⇒ <tt>Object</tt>
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
</h3><div class="docstring">
|
|
546
|
+
<div class="discussion">
|
|
547
|
+
<p>[:throttle, seconds], [:retry, seconds] or [:refuse] for a response that is not a success. headers are
|
|
548
|
+
lowercase names, each with its values. truncated says the body is only the first part of a longer one, which a
|
|
549
|
+
transport keeps no more of: such a 400 is never taken for RequestTimeout, since its whole document was not seen.</p>
|
|
550
|
+
|
|
551
|
+
</div>
|
|
552
|
+
</div>
|
|
553
|
+
<div class="tags">
|
|
554
|
+
|
|
555
|
+
|
|
556
|
+
</div><table class="source_code">
|
|
557
|
+
<tr>
|
|
558
|
+
<td>
|
|
559
|
+
<pre class="lines">
|
|
560
|
+
|
|
561
|
+
|
|
562
|
+
44
|
|
563
|
+
45
|
|
564
|
+
46
|
|
565
|
+
47
|
|
566
|
+
48
|
|
567
|
+
49
|
|
568
|
+
50
|
|
569
|
+
51
|
|
570
|
+
52
|
|
571
|
+
53</pre>
|
|
572
|
+
</td>
|
|
573
|
+
<td>
|
|
574
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 44</span>
|
|
575
|
+
|
|
576
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_classify'>classify</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='comma'>,</span> <span class='id identifier rubyid_headers'>headers</span><span class='comma'>,</span> <span class='id identifier rubyid_body'>body</span><span class='comma'>,</span> <span class='label'>truncated:</span> <span class='kw'>false</span><span class='rparen'>)</span>
|
|
577
|
+
<span class='kw'>if</span> <span class='const'><span class='object_link'><a href="#THROTTLE_STATUSES-constant" title="Files::Transfer::StorageRetry::THROTTLE_STATUSES (constant)">THROTTLE_STATUSES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
|
|
578
|
+
<span class='id identifier rubyid_seconds'>seconds</span> <span class='op'>=</span> <span class='id identifier rubyid_retry_after'>retry_after</span><span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_fetch'>fetch</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>retry-after</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_first'>first</span><span class='rparen'>)</span>
|
|
579
|
+
<span class='kw'>return</span> <span class='id identifier rubyid_seconds'>seconds</span><span class='period'>.</span><span class='id identifier rubyid_finite?'>finite?</span> <span class='op'>?</span> <span class='lbracket'>[</span> <span class='symbol'>:throttle</span><span class='comma'>,</span> <span class='id identifier rubyid_seconds'>seconds</span> <span class='rbracket'>]</span> <span class='op'>:</span> <span class='lbracket'>[</span> <span class='symbol'>:refuse</span> <span class='rbracket'>]</span>
|
|
580
|
+
<span class='kw'>end</span>
|
|
581
|
+
<span class='kw'>return</span> <span class='lbracket'>[</span> <span class='symbol'>:retry</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="#RETRY_DELAY-constant" title="Files::Transfer::StorageRetry::RETRY_DELAY (constant)">RETRY_DELAY</a></span></span> <span class='rbracket'>]</span> <span class='kw'>if</span> <span class='const'><span class='object_link'><a href="#RETRY_STATUSES-constant" title="Files::Transfer::StorageRetry::RETRY_STATUSES (constant)">RETRY_STATUSES</a></span></span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_status'>status</span><span class='rparen'>)</span>
|
|
582
|
+
<span class='kw'>return</span> <span class='lbracket'>[</span> <span class='symbol'>:retry</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="#RETRY_DELAY-constant" title="Files::Transfer::StorageRetry::RETRY_DELAY (constant)">RETRY_DELAY</a></span></span> <span class='rbracket'>]</span> <span class='kw'>if</span> <span class='id identifier rubyid_status'>status</span> <span class='op'>==</span> <span class='int'>400</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_truncated'>truncated</span> <span class='op'>&&</span> <span class='id identifier rubyid_request_timeout?'>request_timeout?</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
|
|
583
|
+
|
|
584
|
+
<span class='lbracket'>[</span> <span class='symbol'>:refuse</span> <span class='rbracket'>]</span>
|
|
585
|
+
<span class='kw'>end</span></pre>
|
|
586
|
+
</td>
|
|
587
|
+
</tr>
|
|
588
|
+
</table>
|
|
589
|
+
</div>
|
|
590
|
+
|
|
591
|
+
<div class="method_details ">
|
|
592
|
+
<h3 class="signature " id="compact_time-class_method">
|
|
593
|
+
|
|
594
|
+
.<strong>compact_time</strong>(text) ⇒ <tt>Object</tt>
|
|
595
|
+
|
|
596
|
+
|
|
597
|
+
|
|
598
|
+
|
|
599
|
+
|
|
600
|
+
</h3><table class="source_code">
|
|
601
|
+
<tr>
|
|
602
|
+
<td>
|
|
603
|
+
<pre class="lines">
|
|
604
|
+
|
|
605
|
+
|
|
606
|
+
154
|
|
607
|
+
155
|
|
608
|
+
156
|
|
609
|
+
157</pre>
|
|
610
|
+
</td>
|
|
611
|
+
<td>
|
|
612
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 154</span>
|
|
613
|
+
|
|
614
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_compact_time'>compact_time</span><span class='lparen'>(</span><span class='id identifier rubyid_text'>text</span><span class='rparen'>)</span>
|
|
615
|
+
<span class='id identifier rubyid_match'>match</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z\z</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
|
|
616
|
+
<span class='id identifier rubyid_match'>match</span> <span class='op'>&&</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_utc'>utc</span><span class='lparen'>(</span><span class='op'>*</span><span class='id identifier rubyid_match'>match</span><span class='period'>.</span><span class='id identifier rubyid_captures'>captures</span><span class='period'>.</span><span class='id identifier rubyid_map'>map</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:to_i</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
|
617
|
+
<span class='kw'>end</span></pre>
|
|
618
|
+
</td>
|
|
619
|
+
</tr>
|
|
620
|
+
</table>
|
|
621
|
+
</div>
|
|
622
|
+
|
|
623
|
+
<div class="method_details ">
|
|
624
|
+
<h3 class="signature " id="expired?-class_method">
|
|
625
|
+
|
|
626
|
+
.<strong>expired?</strong>(expires_at, now: Time.now) ⇒ <tt>Boolean</tt>
|
|
627
|
+
|
|
628
|
+
|
|
629
|
+
|
|
630
|
+
|
|
631
|
+
|
|
632
|
+
</h3><div class="docstring">
|
|
633
|
+
<div class="discussion">
|
|
634
|
+
|
|
635
|
+
|
|
636
|
+
</div>
|
|
637
|
+
</div>
|
|
638
|
+
<div class="tags">
|
|
639
|
+
|
|
640
|
+
<p class="tag_title">Returns:</p>
|
|
641
|
+
<ul class="return">
|
|
642
|
+
|
|
643
|
+
<li>
|
|
644
|
+
|
|
645
|
+
|
|
646
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
647
|
+
|
|
648
|
+
|
|
649
|
+
|
|
650
|
+
</li>
|
|
651
|
+
|
|
652
|
+
</ul>
|
|
653
|
+
|
|
654
|
+
</div><table class="source_code">
|
|
655
|
+
<tr>
|
|
656
|
+
<td>
|
|
657
|
+
<pre class="lines">
|
|
658
|
+
|
|
659
|
+
|
|
660
|
+
150
|
|
661
|
+
151
|
|
662
|
+
152</pre>
|
|
663
|
+
</td>
|
|
664
|
+
<td>
|
|
665
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 150</span>
|
|
666
|
+
|
|
667
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_expired?'>expired?</span><span class='lparen'>(</span><span class='id identifier rubyid_expires_at'>expires_at</span><span class='comma'>,</span> <span class='label'>now:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='rparen'>)</span>
|
|
668
|
+
<span class='op'>!</span><span class='id identifier rubyid_expires_at'>expires_at</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>&&</span> <span class='id identifier rubyid_now'>now</span> <span class='op'>>=</span> <span class='id identifier rubyid_expires_at'>expires_at</span> <span class='op'>-</span> <span class='const'><span class='object_link'><a href="#EXPIRY_MARGIN-constant" title="Files::Transfer::StorageRetry::EXPIRY_MARGIN (constant)">EXPIRY_MARGIN</a></span></span>
|
|
669
|
+
<span class='kw'>end</span></pre>
|
|
670
|
+
</td>
|
|
671
|
+
</tr>
|
|
672
|
+
</table>
|
|
673
|
+
</div>
|
|
674
|
+
|
|
675
|
+
<div class="method_details ">
|
|
676
|
+
<h3 class="signature " id="expires_at-class_method">
|
|
677
|
+
|
|
678
|
+
.<strong>expires_at</strong>(url, api_expires = nil) ⇒ <tt>Object</tt>
|
|
679
|
+
|
|
680
|
+
|
|
681
|
+
|
|
682
|
+
|
|
683
|
+
|
|
684
|
+
</h3><div class="docstring">
|
|
685
|
+
<div class="discussion">
|
|
686
|
+
<p>The earliest of the API's expires and the expiry the signed URL states: S3's X-Amz-Date plus X-Amz-Expires,
|
|
687
|
+
the same X-Files- and X-Goog- parameters, or an Azure SAS's se. nil when neither says.</p>
|
|
688
|
+
|
|
689
|
+
</div>
|
|
690
|
+
</div>
|
|
691
|
+
<div class="tags">
|
|
692
|
+
|
|
693
|
+
|
|
694
|
+
</div><table class="source_code">
|
|
695
|
+
<tr>
|
|
696
|
+
<td>
|
|
697
|
+
<pre class="lines">
|
|
698
|
+
|
|
699
|
+
|
|
700
|
+
135
|
|
701
|
+
136
|
|
702
|
+
137
|
|
703
|
+
138
|
|
704
|
+
139
|
|
705
|
+
140
|
|
706
|
+
141
|
|
707
|
+
142
|
|
708
|
+
143
|
|
709
|
+
144
|
|
710
|
+
145
|
|
711
|
+
146
|
|
712
|
+
147
|
|
713
|
+
148</pre>
|
|
714
|
+
</td>
|
|
715
|
+
<td>
|
|
716
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 135</span>
|
|
717
|
+
|
|
718
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_expires_at'>expires_at</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='comma'>,</span> <span class='id identifier rubyid_api_expires'>api_expires</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
|
719
|
+
<span class='id identifier rubyid_times'>times</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_api_time'>api_time</span><span class='lparen'>(</span><span class='id identifier rubyid_api_expires'>api_expires</span><span class='rparen'>)</span> <span class='rbracket'>]</span>
|
|
720
|
+
<span class='comment'># Names compare without case, and the last of the parameters with a name wins, in the order the URL gives them.
|
|
721
|
+
</span> <span class='id identifier rubyid_query'>query</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
|
|
722
|
+
<span class='op'>::</span><span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_decode_www_form'>decode_www_form</span><span class='lparen'>(</span><span class='op'>::</span><span class='const'>URI</span><span class='period'>.</span><span class='id identifier rubyid_parse'>parse</span><span class='lparen'>(</span><span class='id identifier rubyid_url'>url</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_query'>query</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span> <span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_downcase'>downcase</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span> <span class='rbrace'>}</span>
|
|
723
|
+
<span class='const'><span class='object_link'><a href="#SIGNATURE_PARAMS-constant" title="Files::Transfer::StorageRetry::SIGNATURE_PARAMS (constant)">SIGNATURE_PARAMS</a></span></span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_date'>date</span><span class='comma'>,</span> <span class='id identifier rubyid_lifetime'>lifetime</span><span class='op'>|</span>
|
|
724
|
+
<span class='id identifier rubyid_signed'>signed</span> <span class='op'>=</span> <span class='id identifier rubyid_compact_time'>compact_time</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='id identifier rubyid_date'>date</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
725
|
+
<span class='id identifier rubyid_times'>times</span> <span class='op'><<</span> <span class='lparen'>(</span><span class='id identifier rubyid_signed'>signed</span> <span class='op'>+</span> <span class='const'>Integer</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='id identifier rubyid_lifetime'>lifetime</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='int'>10</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_signed'>signed</span> <span class='op'>&&</span> <span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='id identifier rubyid_lifetime'>lifetime</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A\d+\z</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
|
|
726
|
+
<span class='kw'>end</span>
|
|
727
|
+
<span class='id identifier rubyid_times'>times</span> <span class='op'><<</span> <span class='id identifier rubyid_api_time'>api_time</span><span class='lparen'>(</span><span class='id identifier rubyid_query'>query</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>se</span><span class='tstring_end'>"</span></span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
|
728
|
+
<span class='id identifier rubyid_times'>times</span><span class='period'>.</span><span class='id identifier rubyid_compact'>compact</span><span class='period'>.</span><span class='id identifier rubyid_min'>min</span>
|
|
729
|
+
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span><span class='comma'>,</span> <span class='op'>::</span><span class='const'>URI</span><span class='op'>::</span><span class='const'>InvalidURIError</span>
|
|
730
|
+
<span class='id identifier rubyid_api_time'>api_time</span><span class='lparen'>(</span><span class='id identifier rubyid_api_expires'>api_expires</span><span class='rparen'>)</span>
|
|
731
|
+
<span class='kw'>end</span></pre>
|
|
732
|
+
</td>
|
|
733
|
+
</tr>
|
|
734
|
+
</table>
|
|
735
|
+
</div>
|
|
736
|
+
|
|
737
|
+
<div class="method_details ">
|
|
738
|
+
<h3 class="signature " id="frontend?-class_method">
|
|
739
|
+
|
|
740
|
+
.<strong>frontend?</strong>(headers) ⇒ <tt>Boolean</tt>
|
|
741
|
+
|
|
742
|
+
|
|
743
|
+
|
|
744
|
+
|
|
745
|
+
|
|
746
|
+
</h3><div class="docstring">
|
|
747
|
+
<div class="discussion">
|
|
748
|
+
|
|
749
|
+
|
|
750
|
+
</div>
|
|
751
|
+
</div>
|
|
752
|
+
<div class="tags">
|
|
753
|
+
|
|
754
|
+
<p class="tag_title">Returns:</p>
|
|
755
|
+
<ul class="return">
|
|
756
|
+
|
|
757
|
+
<li>
|
|
758
|
+
|
|
759
|
+
|
|
760
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
761
|
+
|
|
762
|
+
|
|
763
|
+
|
|
764
|
+
</li>
|
|
765
|
+
|
|
766
|
+
</ul>
|
|
767
|
+
|
|
768
|
+
</div><table class="source_code">
|
|
769
|
+
<tr>
|
|
770
|
+
<td>
|
|
771
|
+
<pre class="lines">
|
|
772
|
+
|
|
773
|
+
|
|
774
|
+
129
|
|
775
|
+
130
|
|
776
|
+
131</pre>
|
|
777
|
+
</td>
|
|
778
|
+
<td>
|
|
779
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 129</span>
|
|
780
|
+
|
|
781
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_frontend?'>frontend?</span><span class='lparen'>(</span><span class='id identifier rubyid_headers'>headers</span><span class='rparen'>)</span>
|
|
782
|
+
<span class='id identifier rubyid_headers'>headers</span><span class='period'>.</span><span class='id identifier rubyid_key?'>key?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#FRONTEND_HEADER-constant" title="Files::Transfer::StorageRetry::FRONTEND_HEADER (constant)">FRONTEND_HEADER</a></span></span><span class='rparen'>)</span>
|
|
783
|
+
<span class='kw'>end</span></pre>
|
|
784
|
+
</td>
|
|
785
|
+
</tr>
|
|
786
|
+
</table>
|
|
787
|
+
</div>
|
|
788
|
+
|
|
789
|
+
<div class="method_details ">
|
|
790
|
+
<h3 class="signature " id="request_timeout?-class_method">
|
|
791
|
+
|
|
792
|
+
.<strong>request_timeout?</strong>(body) ⇒ <tt>Boolean</tt>
|
|
793
|
+
|
|
794
|
+
|
|
795
|
+
|
|
796
|
+
|
|
797
|
+
|
|
798
|
+
</h3><div class="docstring">
|
|
799
|
+
<div class="discussion">
|
|
800
|
+
<p>Whether body is exactly S3's RequestTimeout error: a well-formed XML document of at most 64 KiB in UTF-8, with
|
|
801
|
+
no DTD, comment, processing instruction (but an XML declaration at its start), CDATA section or entity but the
|
|
802
|
+
predefined ones, no namespace (neither an xmlns declaration nor a prefix on any element or attribute), no
|
|
803
|
+
repeated attribute and no character XML disallows, whose root is <Error> with a single direct <Code> child
|
|
804
|
+
holding only RequestTimeout. A nested or repeated Code, another code, or anything else is not.</p>
|
|
805
|
+
|
|
806
|
+
</div>
|
|
807
|
+
</div>
|
|
808
|
+
<div class="tags">
|
|
809
|
+
|
|
810
|
+
<p class="tag_title">Returns:</p>
|
|
811
|
+
<ul class="return">
|
|
812
|
+
|
|
813
|
+
<li>
|
|
814
|
+
|
|
815
|
+
|
|
816
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
817
|
+
|
|
818
|
+
|
|
819
|
+
|
|
820
|
+
</li>
|
|
821
|
+
|
|
822
|
+
</ul>
|
|
823
|
+
|
|
824
|
+
</div><table class="source_code">
|
|
825
|
+
<tr>
|
|
826
|
+
<td>
|
|
827
|
+
<pre class="lines">
|
|
828
|
+
|
|
829
|
+
|
|
830
|
+
71
|
|
831
|
+
72
|
|
832
|
+
73
|
|
833
|
+
74
|
|
834
|
+
75
|
|
835
|
+
76
|
|
836
|
+
77
|
|
837
|
+
78
|
|
838
|
+
79
|
|
839
|
+
80
|
|
840
|
+
81
|
|
841
|
+
82
|
|
842
|
+
83
|
|
843
|
+
84
|
|
844
|
+
85
|
|
845
|
+
86
|
|
846
|
+
87
|
|
847
|
+
88
|
|
848
|
+
89
|
|
849
|
+
90
|
|
850
|
+
91
|
|
851
|
+
92
|
|
852
|
+
93
|
|
853
|
+
94
|
|
854
|
+
95
|
|
855
|
+
96
|
|
856
|
+
97
|
|
857
|
+
98
|
|
858
|
+
99
|
|
859
|
+
100
|
|
860
|
+
101
|
|
861
|
+
102
|
|
862
|
+
103
|
|
863
|
+
104
|
|
864
|
+
105
|
|
865
|
+
106</pre>
|
|
866
|
+
</td>
|
|
867
|
+
<td>
|
|
868
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 71</span>
|
|
869
|
+
|
|
870
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_request_timeout?'>request_timeout?</span><span class='lparen'>(</span><span class='id identifier rubyid_body'>body</span><span class='rparen'>)</span>
|
|
871
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_bytesize'>bytesize</span> <span class='op'><=</span> <span class='const'><span class='object_link'><a href="#XML_MAX_BYTES-constant" title="Files::Transfer::StorageRetry::XML_MAX_BYTES (constant)">XML_MAX_BYTES</a></span></span>
|
|
872
|
+
|
|
873
|
+
<span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_body'>body</span><span class='period'>.</span><span class='id identifier rubyid_b'>b</span>
|
|
874
|
+
<span class='id identifier rubyid_utf8'>utf8</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_dup'>dup</span><span class='period'>.</span><span class='id identifier rubyid_force_encoding'>force_encoding</span><span class='lparen'>(</span><span class='const'>Encoding</span><span class='op'>::</span><span class='const'>UTF_8</span><span class='rparen'>)</span>
|
|
875
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_utf8'>utf8</span><span class='period'>.</span><span class='id identifier rubyid_valid_encoding?'>valid_encoding?</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#XML_FORBIDDEN-constant" title="Files::Transfer::StorageRetry::XML_FORBIDDEN (constant)">XML_FORBIDDEN</a></span></span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='op'>!</span><span class='id identifier rubyid_utf8'>utf8</span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>[]</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span>
|
|
876
|
+
|
|
877
|
+
<span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_sub'>sub</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#XML_DECLARATION-constant" title="Files::Transfer::StorageRetry::XML_DECLARATION (constant)">XML_DECLARATION</a></span></span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
|
|
878
|
+
<span class='id identifier rubyid_stack'>stack</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
879
|
+
<span class='id identifier rubyid_codes'>codes</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
880
|
+
<span class='id identifier rubyid_rooted'>rooted</span> <span class='op'>=</span> <span class='kw'>false</span>
|
|
881
|
+
<span class='id identifier rubyid_position'>position</span> <span class='op'>=</span> <span class='int'>0</span>
|
|
882
|
+
<span class='kw'>while</span> <span class='id identifier rubyid_position'>position</span> <span class='op'><</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_bytesize'>bytesize</span>
|
|
883
|
+
<span class='id identifier rubyid_token'>token</span> <span class='op'>=</span> <span class='const'><span class='object_link'><a href="#XML_TOKEN-constant" title="Files::Transfer::StorageRetry::XML_TOKEN (constant)">XML_TOKEN</a></span></span><span class='period'>.</span><span class='id identifier rubyid_match'>match</span><span class='lparen'>(</span><span class='id identifier rubyid_text'>text</span><span class='comma'>,</span> <span class='id identifier rubyid_position'>position</span><span class='rparen'>)</span>
|
|
884
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_token'>token</span><span class='op'>&.</span><span class='id identifier rubyid_begin'>begin</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span> <span class='op'>==</span> <span class='id identifier rubyid_position'>position</span>
|
|
885
|
+
|
|
886
|
+
<span class='id identifier rubyid_position'>position</span> <span class='op'>=</span> <span class='id identifier rubyid_token'>token</span><span class='period'>.</span><span class='id identifier rubyid_end'>end</span><span class='lparen'>(</span><span class='int'>0</span><span class='rparen'>)</span>
|
|
887
|
+
<span class='id identifier rubyid_closing'>closing</span><span class='comma'>,</span> <span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='comma'>,</span> <span class='id identifier rubyid_empty'>empty</span><span class='comma'>,</span> <span class='id identifier rubyid_content'>content</span> <span class='op'>=</span> <span class='id identifier rubyid_token'>token</span><span class='period'>.</span><span class='id identifier rubyid_captures'>captures</span>
|
|
888
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_content'>content</span>
|
|
889
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='lparen'>(</span><span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_any?'>any?</span> <span class='op'>||</span> <span class='id identifier rubyid_content'>content</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_valid_xml_text?'>valid_xml_text?</span><span class='lparen'>(</span><span class='id identifier rubyid_content'>content</span><span class='rparen'>)</span>
|
|
890
|
+
|
|
891
|
+
<span class='id identifier rubyid_codes'>codes</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'><<</span> <span class='id identifier rubyid_content'>content</span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>==</span> <span class='int'>2</span> <span class='op'>&&</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Code</span><span class='tstring_end'>"</span></span> <span class='op'>&&</span> <span class='id identifier rubyid_codes'>codes</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span>
|
|
892
|
+
<span class='kw'>elsif</span> <span class='id identifier rubyid_closing'>closing</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/</span><span class='tstring_end'>"</span></span>
|
|
893
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&&</span> <span class='id identifier rubyid_empty'>empty</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&&</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_pop'>pop</span> <span class='op'>==</span> <span class='id identifier rubyid_name'>name</span>
|
|
894
|
+
<span class='kw'>else</span>
|
|
895
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='id identifier rubyid_valid_xml_attributes?'>valid_xml_attributes?</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
|
|
896
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&&</span> <span class='lparen'>(</span><span class='id identifier rubyid_rooted'>rooted</span> <span class='op'>||</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>!=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Error</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
|
897
|
+
|
|
898
|
+
<span class='id identifier rubyid_rooted'>rooted</span> <span class='op'>=</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
|
899
|
+
<span class='id identifier rubyid_codes'>codes</span><span class='lbracket'>[</span><span class='op'>-</span><span class='int'>1</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='kw'>nil</span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>==</span> <span class='int'>2</span> <span class='op'>&&</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_last'>last</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Code</span><span class='tstring_end'>"</span></span>
|
|
900
|
+
<span class='id identifier rubyid_codes'>codes</span> <span class='op'><<</span> <span class='op'>+</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_size'>size</span> <span class='op'>==</span> <span class='int'>1</span> <span class='op'>&&</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>Code</span><span class='tstring_end'>"</span></span>
|
|
901
|
+
<span class='id identifier rubyid_stack'>stack</span> <span class='op'><<</span> <span class='id identifier rubyid_name'>name</span> <span class='kw'>unless</span> <span class='id identifier rubyid_empty'>empty</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/</span><span class='tstring_end'>"</span></span>
|
|
902
|
+
<span class='kw'>end</span>
|
|
903
|
+
<span class='kw'>end</span>
|
|
904
|
+
<span class='id identifier rubyid_rooted'>rooted</span> <span class='op'>&&</span> <span class='id identifier rubyid_stack'>stack</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span> <span class='op'>&&</span> <span class='id identifier rubyid_codes'>codes</span> <span class='op'>==</span> <span class='lbracket'>[</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>RequestTimeout</span><span class='tstring_end'>"</span></span> <span class='rbracket'>]</span>
|
|
905
|
+
<span class='kw'>end</span></pre>
|
|
906
|
+
</td>
|
|
907
|
+
</tr>
|
|
908
|
+
</table>
|
|
909
|
+
</div>
|
|
910
|
+
|
|
911
|
+
<div class="method_details ">
|
|
912
|
+
<h3 class="signature " id="retry_after-class_method">
|
|
913
|
+
|
|
914
|
+
.<strong>retry_after</strong>(value, now: Time.now) ⇒ <tt>Object</tt>
|
|
915
|
+
|
|
916
|
+
|
|
917
|
+
|
|
918
|
+
|
|
919
|
+
|
|
920
|
+
</h3><div class="docstring">
|
|
921
|
+
<div class="discussion">
|
|
922
|
+
<p>Seconds to wait, never negative and never shortened. Infinity when the value cannot be scheduled.</p>
|
|
923
|
+
|
|
924
|
+
</div>
|
|
925
|
+
</div>
|
|
926
|
+
<div class="tags">
|
|
927
|
+
|
|
928
|
+
|
|
929
|
+
</div><table class="source_code">
|
|
930
|
+
<tr>
|
|
931
|
+
<td>
|
|
932
|
+
<pre class="lines">
|
|
933
|
+
|
|
934
|
+
|
|
935
|
+
56
|
|
936
|
+
57
|
|
937
|
+
58
|
|
938
|
+
59
|
|
939
|
+
60
|
|
940
|
+
61
|
|
941
|
+
62
|
|
942
|
+
63
|
|
943
|
+
64</pre>
|
|
944
|
+
</td>
|
|
945
|
+
<td>
|
|
946
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 56</span>
|
|
947
|
+
|
|
948
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_retry_after'>retry_after</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='comma'>,</span> <span class='label'>now:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_now'>now</span><span class='rparen'>)</span>
|
|
949
|
+
<span class='kw'>return</span> <span class='float'>0.0</span> <span class='kw'>if</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
|
950
|
+
|
|
951
|
+
<span class='id identifier rubyid_text'>text</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_strip'>strip</span>
|
|
952
|
+
<span class='id identifier rubyid_seconds'>seconds</span> <span class='op'>=</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_match?'>match?</span><span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>\A\d+\z</span><span class='regexp_end'>/</span></span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_to_f'>to_f</span> <span class='op'>:</span> <span class='const'>Time</span><span class='period'>.</span><span class='id identifier rubyid_httpdate'>httpdate</span><span class='lparen'>(</span><span class='id identifier rubyid_text'>text</span><span class='rparen'>)</span> <span class='op'>-</span> <span class='id identifier rubyid_now'>now</span>
|
|
953
|
+
<span class='id identifier rubyid_seconds'>seconds</span><span class='period'>.</span><span class='id identifier rubyid_nan?'>nan?</span> <span class='op'>?</span> <span class='const'>Float</span><span class='op'>::</span><span class='const'>INFINITY</span> <span class='op'>:</span> <span class='lbracket'>[</span> <span class='id identifier rubyid_seconds'>seconds</span><span class='comma'>,</span> <span class='float'>0.0</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_max'>max</span>
|
|
954
|
+
<span class='kw'>rescue</span> <span class='const'>ArgumentError</span>
|
|
955
|
+
<span class='float'>0.0</span>
|
|
956
|
+
<span class='kw'>end</span></pre>
|
|
957
|
+
</td>
|
|
958
|
+
</tr>
|
|
959
|
+
</table>
|
|
960
|
+
</div>
|
|
961
|
+
|
|
962
|
+
<div class="method_details ">
|
|
963
|
+
<h3 class="signature " id="valid_xml_attributes?-class_method">
|
|
964
|
+
|
|
965
|
+
.<strong>valid_xml_attributes?</strong>(attributes) ⇒ <tt>Boolean</tt>
|
|
966
|
+
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
|
|
970
|
+
|
|
971
|
+
</h3><div class="docstring">
|
|
972
|
+
<div class="discussion">
|
|
973
|
+
<p>A tag's attributes: none in a namespace (no xmlns declaration, no prefix), none named twice, and each value well
|
|
974
|
+
formed.</p>
|
|
975
|
+
|
|
976
|
+
</div>
|
|
977
|
+
</div>
|
|
978
|
+
<div class="tags">
|
|
979
|
+
|
|
980
|
+
<p class="tag_title">Returns:</p>
|
|
981
|
+
<ul class="return">
|
|
982
|
+
|
|
983
|
+
<li>
|
|
984
|
+
|
|
985
|
+
|
|
986
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
987
|
+
|
|
988
|
+
|
|
989
|
+
|
|
990
|
+
</li>
|
|
991
|
+
|
|
992
|
+
</ul>
|
|
993
|
+
|
|
994
|
+
</div><table class="source_code">
|
|
995
|
+
<tr>
|
|
996
|
+
<td>
|
|
997
|
+
<pre class="lines">
|
|
998
|
+
|
|
999
|
+
|
|
1000
|
+
110
|
|
1001
|
+
111
|
|
1002
|
+
112
|
|
1003
|
+
113
|
|
1004
|
+
114
|
|
1005
|
+
115
|
|
1006
|
+
116
|
|
1007
|
+
117
|
|
1008
|
+
118</pre>
|
|
1009
|
+
</td>
|
|
1010
|
+
<td>
|
|
1011
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 110</span>
|
|
1012
|
+
|
|
1013
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_valid_xml_attributes?'>valid_xml_attributes?</span><span class='lparen'>(</span><span class='id identifier rubyid_attributes'>attributes</span><span class='rparen'>)</span>
|
|
1014
|
+
<span class='id identifier rubyid_names'>names</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
|
1015
|
+
<span class='id identifier rubyid_attributes'>attributes</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#XML_ATTRIBUTE-constant" title="Files::Transfer::StorageRetry::XML_ATTRIBUTE (constant)">XML_ATTRIBUTE</a></span></span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_name'>name</span><span class='comma'>,</span> <span class='id identifier rubyid_value'>value</span><span class='op'>|</span>
|
|
1016
|
+
<span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>if</span> <span class='id identifier rubyid_name'>name</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>xmlns</span><span class='tstring_end'>"</span></span> <span class='op'>||</span> <span class='id identifier rubyid_name'>name</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>:</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_names'>names</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_name'>name</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='op'>!</span><span class='id identifier rubyid_valid_xml_text?'>valid_xml_text?</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span><span class='rparen'>)</span>
|
|
1017
|
+
|
|
1018
|
+
<span class='id identifier rubyid_names'>names</span> <span class='op'><<</span> <span class='id identifier rubyid_name'>name</span>
|
|
1019
|
+
<span class='kw'>end</span>
|
|
1020
|
+
<span class='kw'>true</span>
|
|
1021
|
+
<span class='kw'>end</span></pre>
|
|
1022
|
+
</td>
|
|
1023
|
+
</tr>
|
|
1024
|
+
</table>
|
|
1025
|
+
</div>
|
|
1026
|
+
|
|
1027
|
+
<div class="method_details ">
|
|
1028
|
+
<h3 class="signature " id="valid_xml_text?-class_method">
|
|
1029
|
+
|
|
1030
|
+
.<strong>valid_xml_text?</strong>(text) ⇒ <tt>Boolean</tt>
|
|
1031
|
+
|
|
1032
|
+
|
|
1033
|
+
|
|
1034
|
+
|
|
1035
|
+
|
|
1036
|
+
</h3><div class="docstring">
|
|
1037
|
+
<div class="discussion">
|
|
1038
|
+
<p>Character data or an attribute value: without "]]>", and with character references only to characters XML
|
|
1039
|
+
allows.</p>
|
|
1040
|
+
|
|
1041
|
+
</div>
|
|
1042
|
+
</div>
|
|
1043
|
+
<div class="tags">
|
|
1044
|
+
|
|
1045
|
+
<p class="tag_title">Returns:</p>
|
|
1046
|
+
<ul class="return">
|
|
1047
|
+
|
|
1048
|
+
<li>
|
|
1049
|
+
|
|
1050
|
+
|
|
1051
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
|
1052
|
+
|
|
1053
|
+
|
|
1054
|
+
|
|
1055
|
+
</li>
|
|
1056
|
+
|
|
1057
|
+
</ul>
|
|
1058
|
+
|
|
1059
|
+
</div><table class="source_code">
|
|
1060
|
+
<tr>
|
|
1061
|
+
<td>
|
|
1062
|
+
<pre class="lines">
|
|
1063
|
+
|
|
1064
|
+
|
|
1065
|
+
122
|
|
1066
|
+
123
|
|
1067
|
+
124
|
|
1068
|
+
125
|
|
1069
|
+
126
|
|
1070
|
+
127</pre>
|
|
1071
|
+
</td>
|
|
1072
|
+
<td>
|
|
1073
|
+
<pre class="code"><span class="info file"># File 'lib/files.com/transfer/storage_retry.rb', line 122</span>
|
|
1074
|
+
|
|
1075
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_valid_xml_text?'>valid_xml_text?</span><span class='lparen'>(</span><span class='id identifier rubyid_text'>text</span><span class='rparen'>)</span>
|
|
1076
|
+
<span class='op'>!</span><span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>]]></span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_text'>text</span><span class='period'>.</span><span class='id identifier rubyid_scan'>scan</span><span class='lparen'>(</span><span class='const'><span class='object_link'><a href="#XML_CHARACTER_REFERENCE-constant" title="Files::Transfer::StorageRetry::XML_CHARACTER_REFERENCE (constant)">XML_CHARACTER_REFERENCE</a></span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_all?'>all?</span> <span class='kw'>do</span> <span class='op'>|</span><span class='lparen'>(</span><span class='id identifier rubyid_digits'>digits</span><span class='rparen'>)</span><span class='op'>|</span>
|
|
1077
|
+
<span class='id identifier rubyid_code'>code</span> <span class='op'>=</span> <span class='id identifier rubyid_digits'>digits</span><span class='period'>.</span><span class='id identifier rubyid_start_with?'>start_with?</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>x</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span> <span class='op'>?</span> <span class='id identifier rubyid_digits'>digits</span><span class='lbracket'>[</span><span class='int'>1</span><span class='op'>..</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span><span class='lparen'>(</span><span class='int'>16</span><span class='rparen'>)</span> <span class='op'>:</span> <span class='id identifier rubyid_digits'>digits</span><span class='period'>.</span><span class='id identifier rubyid_to_i'>to_i</span>
|
|
1078
|
+
<span class='lbracket'>[</span> <span class='int'>0x9</span><span class='comma'>,</span> <span class='int'>0xA</span><span class='comma'>,</span> <span class='int'>0xD</span> <span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_code'>code</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_code'>code</span><span class='period'>.</span><span class='id identifier rubyid_between?'>between?</span><span class='lparen'>(</span><span class='int'>0x20</span><span class='comma'>,</span> <span class='int'>0xD7FF</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_code'>code</span><span class='period'>.</span><span class='id identifier rubyid_between?'>between?</span><span class='lparen'>(</span><span class='int'>0xE000</span><span class='comma'>,</span> <span class='int'>0xFFFD</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='id identifier rubyid_code'>code</span><span class='period'>.</span><span class='id identifier rubyid_between?'>between?</span><span class='lparen'>(</span><span class='int'>0x10000</span><span class='comma'>,</span> <span class='int'>0x10FFFF</span><span class='rparen'>)</span>
|
|
1079
|
+
<span class='kw'>end</span>
|
|
1080
|
+
<span class='kw'>end</span></pre>
|
|
1081
|
+
</td>
|
|
1082
|
+
</tr>
|
|
1083
|
+
</table>
|
|
1084
|
+
</div>
|
|
1085
|
+
|
|
1086
|
+
</div>
|
|
1087
|
+
|
|
1088
|
+
</div>
|
|
1089
|
+
|
|
1090
|
+
<div id="footer">
|
|
1091
|
+
Generated on Tue Nov 3 21:11:44 2026 by
|
|
1092
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
|
1093
|
+
0.9.45 (ruby-4.0.9).
|
|
1094
|
+
</div>
|
|
1095
|
+
|
|
1096
|
+
</div>
|
|
1097
|
+
</body>
|
|
1098
|
+
</html>
|