mirror of
https://github.com/rclone/rclone.git
synced 2026-01-20 09:23:21 +00:00
Pure Storage FlashBlade is an enterprise object storage platform that provides S3-compatible APIs. This change adds FlashBlade as a new provider option in the S3 backend. Before this change, FlashBlade users had to use the "Other" provider with manual configuration of various compatibility flags. This often resulted in suboptimal performance due to conservative default settings. After this change, users can select the "FlashBlade" S3 provider and get an optimal configuration: - ListObjectsV2 enabled for better performance - AWS-compatible multipart ETags for reliable transfers - Proper handling of "AlreadyOwnedByYou" bucket creation responses - Path-style URLs by default (virtual-host style with DNS setup) - Unsigned payloads to ensure compatibility with all rclone features FlashBlade supports modern S3 features including trailer checksum algorithms (SHA256, CRC32, CRC32C), object versioning, and lifecycle management. Provider settings were verified by testing against a FlashBlade//E system running Purity//FB 4.5.7. Documentation and test configurations are included. Integration test results: ``` go test -v -fast-list -remote TestS3FlashBlade: PASS ok github.com/rclone/rclone/backend/s3 232.444s ```
534 lines
15 KiB
YAML
534 lines
15 KiB
YAML
tests:
|
|
- path: backend
|
|
addbackend: true
|
|
nobinary: true
|
|
short: true
|
|
- path: fs/operations
|
|
fastlist: true
|
|
- path: fs/sync
|
|
fastlist: true
|
|
- path: cmd/bisync
|
|
- path: cmd/gitannex
|
|
- path: vfs
|
|
- path: cmd/serve/restic
|
|
localonly: true
|
|
# - path: cmd/serve/docker
|
|
# localonly: true
|
|
- path: cmd/selfupdate
|
|
localonly: true
|
|
backends:
|
|
- backend: "local"
|
|
remote: ""
|
|
fastlist: false
|
|
- backend: "b2"
|
|
remote: "TestB2:"
|
|
fastlist: true
|
|
listretries: 5
|
|
ignore:
|
|
# This test fails because B2 versions make the empty bucket undeleteable.
|
|
# It isn't possible to turn off versions, and setting hard_delete doesn't stop
|
|
# versions being made on overwrite.
|
|
- TestRmdirsNoLeaveRoot
|
|
- backend: "crypt"
|
|
remote: "TestCryptDrive:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestCopyFileMaxTransfer
|
|
- backend: "crypt"
|
|
remote: "TestCryptSwift:"
|
|
fastlist: false
|
|
## chunker
|
|
- backend: "chunker"
|
|
remote: "TestChunkerLocal:"
|
|
fastlist: true
|
|
- backend: "chunker"
|
|
remote: "TestChunkerNometaLocal:"
|
|
fastlist: true
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk3bLocal:"
|
|
fastlist: true
|
|
maxfile: 6k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk3bNometaLocal:"
|
|
fastlist: true
|
|
maxfile: 6k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk3bNoRenameLocal:"
|
|
fastlist: true
|
|
maxfile: 6k
|
|
# - backend: "chunker"
|
|
# remote: "TestChunkerMailru:"
|
|
# fastlist: true
|
|
# ignore:
|
|
# - TestApplyTransforms
|
|
# - backend: "chunker"
|
|
# remote: "TestChunkerChunk50bMailru:"
|
|
# fastlist: true
|
|
# maxfile: 10k
|
|
# ignore:
|
|
# - TestApplyTransforms
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bYandex:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bBox:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerS3:"
|
|
fastlist: true
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bS3:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bMD5HashS3:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bSHA1HashS3:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerOverCrypt:"
|
|
fastlist: true
|
|
maxfile: 6k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bMD5QuickS3:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
- backend: "chunker"
|
|
remote: "TestChunkerChunk50bSHA1QuickS3:"
|
|
fastlist: true
|
|
maxfile: 1k
|
|
## end chunker
|
|
- backend: "cloudinary"
|
|
remote: "TestCloudinary:"
|
|
fastlist: false
|
|
ignore:
|
|
# fs/operations
|
|
- TestCheckSum
|
|
- TestCheckSumDownload
|
|
- TestHashSums/Md5
|
|
- TestReadFile
|
|
- TestCopyURL
|
|
- TestMoveFileWithIgnoreExisting
|
|
#vfs
|
|
- TestFileSetModTime/cache=off,open=false,write=false
|
|
- TestFileSetModTime/cache=off,open=true,write=false
|
|
- TestRWFileHandleWriteNoWrite
|
|
- backend: "combine"
|
|
remote: "TestCombine:dir1"
|
|
fastlist: false
|
|
## begin compress
|
|
- backend: "compress"
|
|
remote: "TestCompress:"
|
|
fastlist: false
|
|
- backend: "compress"
|
|
remote: "TestCompressSwift:"
|
|
fastlist: false
|
|
- backend: "compress"
|
|
remote: "TestCompressDrive:"
|
|
fastlist: false
|
|
- backend: "compress"
|
|
remote: "TestCompressS3:"
|
|
fastlist: false
|
|
## end compress
|
|
- backend: "drive"
|
|
remote: "TestDrive:"
|
|
fastlist: true
|
|
ignore:
|
|
# Test with CutoffModeHard does not result in ErrorMaxTransferLimitReachedFatal
|
|
# because googleapi replaces it with a non-fatal error
|
|
- TestCopyFileMaxTransfer
|
|
- backend: "dropbox"
|
|
remote: "TestDropbox:"
|
|
fastlist: false
|
|
# - backend: "filefabric"
|
|
# remote: "TestFileFabric:"
|
|
# fastlist: false
|
|
# extratime: 2.0
|
|
- backend: "gofile"
|
|
remote: "TestGoFile:"
|
|
fastlist: true
|
|
- backend: "filescom"
|
|
remote: "TestFilesCom:"
|
|
fastlist: false
|
|
- backend: "googlecloudstorage"
|
|
remote: "TestGoogleCloudStorage:"
|
|
fastlist: true
|
|
- backend: "googlecloudstorage"
|
|
remote: "TestGoogleCloudStorage,directory_markers:"
|
|
fastlist: true
|
|
- backend: "googlephotos"
|
|
remote: "TestGooglePhotos:"
|
|
tests:
|
|
- backend
|
|
- backend: "hidrive"
|
|
remote: "TestHiDrive:"
|
|
fastlist: false
|
|
- backend: "imagekit"
|
|
remote: "TestImageKit:"
|
|
fastlist: false
|
|
- backend: "internetarchive"
|
|
remote: "TestIA:rclone-integration-test"
|
|
fastlist: true
|
|
tests:
|
|
- backend
|
|
extratime: 2.0
|
|
- backend: "jottacloud"
|
|
remote: "TestJottacloud:"
|
|
fastlist: true
|
|
- backend: "memory"
|
|
remote: ":memory:"
|
|
fastlist: true
|
|
- backend: "netstorage"
|
|
remote: "TestnStorage:"
|
|
fastlist: true
|
|
- backend: "onedrive"
|
|
remote: "TestOneDrive:"
|
|
fastlist: false
|
|
ignore:
|
|
# This test doesn't work on a standard Onedrive account returning
|
|
# accessDenied: accountUpgradeRequired: Account Upgrade is required for this operation.
|
|
- TestIntegration/FsMkdir/FsPutFiles/PublicLink
|
|
- backend: "onedrive"
|
|
remote: "TestOneDriveBusiness:"
|
|
fastlist: false
|
|
# - backend: "onedrive"
|
|
# remote: "TestOneDriveCn:"
|
|
# fastlist: false
|
|
- backend: "s3"
|
|
remote: "TestS3:"
|
|
fastlist: true
|
|
- backend: "s3"
|
|
remote: "TestS3,directory_markers:"
|
|
fastlist: true
|
|
- backend: "s3"
|
|
remote: "TestS3Rclone:"
|
|
fastlist: true
|
|
- backend: "s3"
|
|
remote: "TestS3Minio:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
- TestIntegration/FsMkdir/FsEncoding/control_chars
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_VT
|
|
- TestIntegration/FsMkdir/FsEncoding/punctuation
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_VT
|
|
- backend: "s3"
|
|
remote: "TestS3MinioEdge:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
- backend: "s3"
|
|
remote: "TestS3Wasabi:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_HT
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_VT
|
|
- TestIntegration/FsMkdir/FsPutFiles/FsPutStream/0
|
|
- backend: "s3"
|
|
remote: "TestS3GCS:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/control_chars
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_LF
|
|
- TestIntegration/FsMkdir/FsPutFiles/PublicLink
|
|
- TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
- TestIntegration/FsMkdir/FsPutFiles/Internal/Metadata/GzipEncoding
|
|
- TestIntegration/FsMkdir/FsPutFiles/Internal/Versions/VersionAt/AfterDelete/List
|
|
- TestIntegration/FsMkdir/FsPutFiles/Internal/Versions/VersionAt/AfterDelete/NewObject
|
|
- TestIntegration/FsMkdir/FsPutFiles/Internal/Versions/VersionAt/AfterTwo/List
|
|
- TestIntegration/FsMkdir/FsPutFiles/Internal/Versions/VersionAt/AfterTwo/NewObject
|
|
- TestBisyncRemoteRemote/extended_filenames
|
|
# Disabled due to excessive rate limiting at DO which cause the tests never to pass
|
|
# This hits the rate limit as documented here: https://www.digitalocean.com/docs/spaces/#limits
|
|
# 2 COPYs per 5 minutes on any individual object in a Space
|
|
# - backend: "s3"
|
|
# remote: "TestS3DigitalOcean:"
|
|
# fastlist: true
|
|
# ignore:
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FsCopy
|
|
# - TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
# - backend: "s3"
|
|
# remote: "TestS3Ceph:"
|
|
# fastlist: true
|
|
# ignore:
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FsCopy
|
|
# - TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
- backend: "s3"
|
|
remote: "TestS3Alibaba:"
|
|
fastlist: true
|
|
# - backend: "s3"
|
|
# remote: "TestS3Qiniu:"
|
|
# fastlist: true
|
|
# ignore:
|
|
# - TestIntegration/FsMkdir/FsEncoding/control_chars
|
|
# - TestIntegration/FsMkdir/FsEncoding/leading_VT
|
|
# - TestIntegration/FsMkdir/FsEncoding/trailing_VT
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FromRoot/ListR
|
|
# - TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FsPutStream/0
|
|
# - TestIntegration/FsMkdir/FsPutFiles/Internal/Metadata
|
|
- backend: "s3"
|
|
remote: "TestS3R2:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/SetTier
|
|
# - backend: "s3"
|
|
# remote: "TestS3FlashBlade:"
|
|
# fastlist: true
|
|
- backend: "sftp"
|
|
remote: "TestSFTPOpenssh:"
|
|
fastlist: false
|
|
- backend: "sftp"
|
|
remote: "TestSFTPRclone:"
|
|
fastlist: false
|
|
- backend: "sftp"
|
|
remote: "TestSFTPRcloneSSH:"
|
|
fastlist: false
|
|
- backend: "sftp"
|
|
remote: "TestSFTPRsyncNet:"
|
|
fastlist: false
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_space
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_HT
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_VT
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_dot
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
- TestIntegration/FsMkdir/FsEncoding/URL_encoding
|
|
- backend: "sugarsync"
|
|
remote: "TestSugarSync:Test"
|
|
fastlist: false
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/PublicLink
|
|
- backend: "swift"
|
|
remote: "TestSwiftAIO:"
|
|
fastlist: true
|
|
- backend: "swift"
|
|
remote: "TestSwiftAIOsegments:"
|
|
fastlist: true
|
|
- backend: "swift"
|
|
remote: "TestSwift:"
|
|
fastlist: true
|
|
# - backend: "swift"
|
|
# remote: "TestSwiftCeph:"
|
|
# fastlist: true
|
|
# ignore:
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FsCopy
|
|
- backend: "yandex"
|
|
remote: "TestYandex:"
|
|
fastlist: false
|
|
- backend: "ftp"
|
|
remote: "TestFTPProftpd:"
|
|
fastlist: false
|
|
- backend: "ftp"
|
|
remote: "TestFTPPureftpd:"
|
|
fastlist: false
|
|
- backend: "ftp"
|
|
remote: "TestFTPVsftpd:"
|
|
fastlist: false
|
|
- backend: "ftp"
|
|
remote: "TestFTPRclone:"
|
|
fastlist: false
|
|
- backend: "box"
|
|
remote: "TestBox:"
|
|
fastlist: false
|
|
- backend: "fichier"
|
|
remote: "TestFichier:"
|
|
fastlist: false
|
|
listretries: 5
|
|
tests:
|
|
- backend
|
|
# Disabled due to account cancellation - no longer available to me
|
|
# - backend: "qingstor"
|
|
# remote: "TestQingStor:"
|
|
# fastlist: false
|
|
# oneonly: true
|
|
# cleanup: true
|
|
# ignore:
|
|
# # This test fails because of a broken bucket in the account!
|
|
# - TestIntegration/FsMkdir/FsPutFiles/FromRoot/ListR
|
|
- backend: "azureblob"
|
|
remote: "TestAzureBlob:"
|
|
fastlist: true
|
|
- backend: "azureblob"
|
|
remote: "TestAzureBlob,directory_markers:"
|
|
fastlist: true
|
|
- backend: "azurefiles"
|
|
remote: "TestAzureFiles:"
|
|
- backend: "pcloud"
|
|
remote: "TestPcloud:"
|
|
fastlist: true
|
|
- backend: "pikpak"
|
|
remote: "TestPikPak:"
|
|
fastlist: false
|
|
ignore:
|
|
# fs/operations
|
|
- TestCheckSum
|
|
- TestHashSums/Md5
|
|
# fs/sync
|
|
- TestSyncWithTrackRenames
|
|
# integration
|
|
- TestIntegration/FsMkdir/FsPutFiles/ObjectMimeType
|
|
# This test fails with message
|
|
# "share_status_prohibited" (9): Sorry, the sharing service is under maintenance in the current region.
|
|
- TestIntegration/FsMkdir/FsPutFiles/PublicLink
|
|
- backend: "pixeldrain"
|
|
remote: "TestPixeldrain:"
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
fastlist: false
|
|
- backend: "webdav"
|
|
remote: "TestWebdavNextcloud:"
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/punctuation
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
fastlist: false
|
|
- backend: "webdav"
|
|
remote: "TestWebdavOwncloud:"
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/punctuation
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
fastlist: false
|
|
- backend: "webdav"
|
|
remote: "TestWebdavInfiniteScale:"
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/punctuation
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
fastlist: false
|
|
- backend: "webdav"
|
|
remote: "TestWebdavRclone:"
|
|
ignore:
|
|
- TestFileReadAtZeroLength
|
|
fastlist: false
|
|
- backend: "cache"
|
|
remote: "TestCache:"
|
|
fastlist: false
|
|
ignoretests:
|
|
- TestBisyncLocalRemote
|
|
- TestBisyncRemoteLocal
|
|
- TestBisyncRemoteRemote
|
|
- backend: "mega"
|
|
remote: "TestMega:"
|
|
fastlist: false
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/PublicLink
|
|
- TestDirRename
|
|
- backend: "opendrive"
|
|
remote: "TestOpenDrive:"
|
|
fastlist: false
|
|
- backend: "union"
|
|
remote: "TestUnion:"
|
|
fastlist: false
|
|
- backend: "koofr"
|
|
remote: "TestKoofr:"
|
|
fastlist: false
|
|
# - backend: "koofr"
|
|
# remote: "TestDigiStorage:"
|
|
# fastlist: false
|
|
- backend: "linkbox"
|
|
remote: "TestLinkbox:"
|
|
fastlist: false
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/invalid_UTF-8
|
|
- TestRWFileHandleWriteNoWrite
|
|
- TestCaseInsensitiveMoveFile
|
|
- TestFixCase
|
|
- TestListDirSorted # Can't upload files starting with . - FIXME fix with encoding
|
|
- TestSyncOverlapWithFilter # Can't upload files starting with . - FIXME fix with encoding
|
|
- backend: "premiumizeme"
|
|
remote: "TestPremiumizeMe:"
|
|
fastlist: false
|
|
- backend: "protondrive"
|
|
remote: "TestProtonDrive:"
|
|
fastlist: false
|
|
- backend: "putio"
|
|
remote: "TestPutio:"
|
|
fastlist: false
|
|
extratime: 2.0
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/URL_encoding
|
|
- backend: "sharefile"
|
|
remote: "TestSharefile:"
|
|
fastlist: false
|
|
- backend: "sia"
|
|
remote: "TestSia:"
|
|
fastlist: false
|
|
- backend: "mailru"
|
|
remote: "TestMailru:"
|
|
subdir: false
|
|
fastlist: false
|
|
oneonly: true
|
|
ignore:
|
|
- TestApplyTransforms
|
|
- backend: "seafile"
|
|
remote: "TestSeafileV6:"
|
|
fastlist: false
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsPutFiles/FsDirMove
|
|
- backend: "seafile"
|
|
remote: "TestSeafile:"
|
|
fastlist: true
|
|
- backend: "seafile"
|
|
remote: "TestSeafileEncrypted:"
|
|
fastlist: true
|
|
- backend: "sia"
|
|
remote: "TestSia:"
|
|
fastlist: false
|
|
- backend: "smb"
|
|
remote: "TestSMB:rclone"
|
|
fastlist: false
|
|
- backend: "smb"
|
|
remote: "TestSMBKerberos:rclone"
|
|
fastlist: false
|
|
- backend: "storj"
|
|
remote: "TestStorj:"
|
|
fastlist: true
|
|
- backend: "zoho"
|
|
remote: "TestZoho:"
|
|
fastlist: false
|
|
tests:
|
|
- backend
|
|
- backend: "hdfs"
|
|
remote: "TestHdfs:"
|
|
fastlist: false
|
|
ignore:
|
|
- TestSyncUTFNorm
|
|
# - backend: "uptobox"
|
|
# remote: "TestUptobox:"
|
|
# fastlist: false
|
|
# ignore:
|
|
# - TestRWFileHandleWriteNoWrite
|
|
- backend: "oracleobjectstorage"
|
|
remote: "TestOracleObjectStorage:"
|
|
fastlist: true
|
|
ignore:
|
|
- TestIntegration/FsMkdir/FsEncoding/control_chars
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_CR
|
|
- TestIntegration/FsMkdir/FsEncoding/trailing_LF
|
|
- TestIntegration/FsMkdir/FsEncoding/leading_HT
|
|
- TestIntegration/FsMkdir/FsPutFiles/FsPutStream/0
|
|
- backend: "quatrix"
|
|
remote: "TestQuatrix:"
|
|
fastlist: false
|
|
- backend: "ulozto"
|
|
remote: "TestUlozto:"
|
|
fastlist: false
|
|
- backend: "iclouddrive"
|
|
remote: "TestICloudDrive:"
|
|
fastlist: false
|