-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Large in-memory S3 transfers #64
Comments
Have you looked at aws-sdk-cpp-transfer? It does many of the things you are aws-sdk-cpp is a low-level client. Meaning, it is just an interface for What you have should work at first glance, hut the transfer manager is Also, you are correct that if you dont override the rate limiter, then We discuss the transfer manager in the video in the readme. Its the last 15
|
Correction aws-sdk-cpp-s3* is a low-level client.
|
Thanks - I hadn't noticed that. Looking at TransferClient, I only see an interface for uploading and downloading files from disk by filename... am I missing an API that allows you to do this with in-memory buffers (i.e. I have a |
have a look here and work backwards, you should be able to reuse our resource management interface. |
Thanks for the pointer. Does the C++ SDK support multipart downloads? I see multipart upload requests in sdk-s3 and examples of them being used both in sdk-s3-integration-tests and sdk-transfer but don't see any reference to multipart downloads anywhere (or an option to specify this in the Am I just missing this? If not, any guesses as to when the SDK will be updated to support it? |
Each service client supports whatever a given service exposes, they are I recommend reading the api docs for s3. Once you determine what low-level
|
Thanks... I should have taken a closer look. I am successfully using the |
In your example above with the StringStream for the "get" how do you access the underlying stream? Any help would be appreciated. |
So the cool thing is that you don't need to 'get' the underlying stream at all. When the AWS SDK uses the StringStream to write, it's writing directly into the To clarify a bit though, when I want the entire S3 object in memory, I first ask S3 the size of the object, then allocate a buffer / resize a vector to be that size, then pass that pointer to the lambda. I've been using this successfully so far but of course would like to get some more miles on it in case there's a shortcoming I haven't run into yet, so let me know if you have any issues with the approach. |
Thanks for the quick reply. Your answer is really helpful. This seems like it would work when one can read the entire object in memory. |
Sure thing. Yep - something similar to what you're saying is on my todo list too. You can use |
Thanks for your help. I'll look into it. And report back if I have anything of value to add. But I think I am solving a slightly different problem: I am thinking my server (acting as an s3 client) would be reading several large objects at once streaming them back while processing them and putting the result of the processing on separate dedicated queues that get drained in proper order by a sender thread. This sender thread would be sending responses back to my client. So it's not necessarily breaking up a large object, but streaming it. And I don't think it would be a problem if the memory is dynamically allocated, that would actually be easier if the stream would handle it as basic IO streams do. It seems to me the advantage of streaming (in general) is being able to process the head of an arbitrarily sized (and possibly huge) stream at the client side while the server is still sending the tail portion. Since I am processing packets out of the S3 object and sending a set of response messages for each this would reduce the latency of the request/response between my client and server because I don't have to wait until I receive the entire object before sending response messages. |
Ahh gotcha... in that case, you should be able to just send the SDK a normal StringStream (without the pubsetbuf()). The SDK would write to the stream and the StringStream would internally dynamically allocate more space as needed. You want to be able to access the stream afterwards, so you create the stream beforehand and make a lambda for SetResponseStreamFactory that just returns a pointer to that stream. You keep the stream in scope and then just access it directly after the SDK call. |
That is what I have been trying to do but to no avail. here is the compiler output: For the following code: This is defined in the class protected data: This is in the Ctor of the class:
And finally this is the call to the lambda using a local scope variable:
|
I just skimmed over this, but take a look at the response stream factory signature... I'm pretty sure it wants a raw rather than shared pointer (so change to |
Thanks! I'm wasn't sure if this needed to be a shared pointer or not. I was following the pattern from the other stuff. I'm new to the smart pointer concept. The following code compiles _but is it ok at runtime?_ I assume I own the stream but how do I know the api thread that is using it is done? What if I want to implement a "cancel" ? It seems that a smart pointer might be needed in this case. The lamda call: In the Ctor: Where s3_stream was defined in protected data as:
|
The memory returned by the reaponsestreamfactory will be deleted when the
|
@JonathanHenson From the example:
If I understand this correctly GetObject blocks until the transfer is complete. |
Result object is inside the outcome. e.g. getObjectOutcome.GetResult(); You can take ownership of the Result via move semantics. In that scenario, the memory is yours once you call GetResultWithOwnership(); All low-level api calls have async and future variants. So you can always use those. |
…er to develop # By Konrad Zemek # Via Konrad Zemek * commit '4e815bc37e1c9bd9a0108a598565b3cc6e769455': chown logs better.
6280b36 Add open function overload that takes flags as integer. b4fd726 Merge pull request aws#160 in VFS/helpers from feature/VFS-1529-autodetect-available-storages-in to develop 300baca Merge pull request aws#166 in VFS/helpers from feature/VFS-1621-oneclient-package-docker-plan-at to develop a25e655 Releasing new version 2.0.1 fc63cff Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/helpers into feature/VFS-1529-autodetect-available-storages-in f14c519 Merge commit '18d7abee1407a200a85913d9588c4202969a3bab' into feature/VFS-1621-oneclient-package-docker-plan-at 18d7abe Squashed 'bamboos/' changes from ccb41c3..a30c6f2 96db294 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/helpers into feature/VFS-1621-oneclient-package-docker-plan-at 8c89871 Merge pull request aws#157 in VFS/helpers from feature/VFS-1525-oneclient-opens-files-before-read-writes to develop c1e52f6 VFS-1529 Remove unnecessary capture. bbc7df5 VFS-1525 Refactor for loop a487e47 VFS-1529 Change logging level in storage helpers. Use glog for logging unordered maps. b27da4a VFS-1525 Remove openFile method from helpers 130d1d6 VFS-1525 Parsing flags in IStorageHelper 32e5f0a VFS-1529 Add logs in case of raw helper context cast failure. ec39595 Squashed 'bamboos/' changes from ca613bd..ccb41c3 35a79cc Merge commit 'ec39595c37033057fce6be09f0eb546a5213dcb6' into feature/VFS-1621-oneclient-package-docker-plan-at d879dd7 Merge pull request aws#162 in VFS/helpers from feature/VFS-1608-integrate-ember-gui-production-build to develop 1247e61 VFS-1529 Return new helper context if raw context cast fails. b92d950 Merge commit 'a61ce189983d1c3b6c96ce4605174b5d299c40d9' into feature/VFS-1529-autodetect-available-storages-in a61ce18 Squashed 'clproto/' changes from a860fe1..a982eb9 3e3a042 Merge commit 'c4162767e912534d47a46fd5ff857aecaa099069' into feature/VFS-1608-integrate-ember-gui-production-build c416276 Squashed 'appmock/' changes from 2f5d162..68aaf01 5b45a4a Merge commit 'db705cb3f5e23f2178dd6c5af46f1863427e0a63' into feature/VFS-1608-integrate-ember-gui-production-build db705cb Squashed 'bamboos/' changes from 8e869b3..2f522cc d17fbf9 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/helpers into feature/VFS-1529-autodetect-available-storages-in 58c5f06 Merge commit '05d800615c88635213e452411abd0c8e8a576f32' into feature/VFS-1529-autodetect-available-storages-in 05d8006 Squashed 'clproto/' changes from 85adaf8..a860fe1 aea2c4e Merge commit 'aab4a7aa6bb6efb90ca367e6651040b8cd080edb' into feature/VFS-1608-integrate-ember-gui-production-build aab4a7a Squashed 'appmock/' changes from 0999c5d..2f5d162 2bc1d01 Squashed 'bamboos/' changes from ca613bd..8e869b3 a2c1622 Merge commit '2bc1d01226ae228ed3c1ae568bfe148fbb97ce8a' into feature/VFS-1608-integrate-ember-gui-production-build da581c3 Merge pull request aws#161 in VFS/helpers from feature/VFS-1571-speed-up-compilation-through-caching to develop 53f3f4e Squashed 'bamboos/' changes from f0eb1c2..ca613bd a84ba85 Merge commit '53f3f4e33ee0f70c4a1ddb8c05e10b9946f4c8a8' into feature/VFS-1571-speed-up-compilation-through-caching d7525b3 Merge commit '0de736692e1bfb439c5a9d1f1d81c0da15e6b8e7' into feature/VFS-1571-speed-up-compilation-through-caching 0de7366 Squashed 'appmock/' changes from 0e1718a..0999c5d 29dd11b Releasing new version 2.0.0 e81f3ca Delete ReleaseNotes 5660da3 VFS-1525 Make flag translation public for use in open. ee56cc2 Merge pull request aws#159 in VFS/helpers from feature/VFS-1522-file-block-invalidation to develop fc94f83 VFS-1525 Update sh_open with FlagsSet 32a6ae0 Merge branch 'develop' into feature/VFS-1525-oneclient-opens-files-before-read-writes 517b81f VFS-1529 Remove code duplication in S3 storage helper. 2f80783 VFS-1529 Throw exception in storage helper factory if helper name doesn't match. 02032da Merge commit '41dcd1ed10fad162f488220744d14cb3c24689b8' into feature/VFS-1529-autodetect-available-storages-in 41dcd1e Squashed 'clproto/' changes from 74839e4..85adaf8 85fdaad VFS-1529 Add mechanism for automatic detection of directly accessible storages. 7c64a2d Merge branch 'develop' into feature/VFS-1522-file-block-invalidation f5e1777 Merge commit '4d2e84b125eafd8d0a566e5cd161a9a0bc2dc420' into feature/VFS-1522-file-block-invalidation 4d2e84b Squashed 'clproto/' changes from 8dd55d1..fa290fc 92a0605 Merge commit '6629b62f4e50c74f28837d5445610f600f7169ab' into feature/VFS-1529-autodetect-available-storages-in 6629b62 Squashed 'clproto/' changes from 029c696..74839e4 d98a97d Merge pull request aws#156 in VFS/helpers from feature/merge-storage-helpers-functionality to develop 9d30f8f Merge commit '063878aab71f2eb6efedd9a988b529eb5d1971be' into feature/VFS-1522-file-block-invalidation 063878a Squashed 'clproto/' changes from 9fc119c..8dd55d1 3954cb7 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/helpers into feature/merge-storage-helpers-functionality de91cbc Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/helpers into feature/merge-storage-helpers-functionality 1940bfb Merge pull request aws#154 in VFS/helpers from feature/VFS-1450-3-acl-improvements to develop b6bc3e5 Merge branch 'develop' into feature/VFS-1450-3-acl-improvements 5e72838 Merge pull request aws#158 in VFS/helpers from bugfix/fix-integration-tests to develop 1ac6141 Fix integration tests. e90f30f Squashed 'bamboos/' changes from b146078..f0eb1c2 7adc9a9 Merge commit 'e90f30f645452d8b8deb9a3cabe3a2fac30ec037' into develop 26941d1 Change flags container from vector to unordered set. b2d2b32 VFS-1525 Synchronous version of open and release methods 648169c VFS-1450 Remove unused import. 8295e12 VFS-1450 Additional merge changes. 5ff1c94 Squashed 'clproto/' changes from 10384fc..9fc119c 3854ab1 Merge commit '5ff1c9491e62a5ff28a7f6b3369d98a5223dc37b' into feature/VFS-1450-3-acl-improvements 0c0e653 Merge branch 'develop' into feature/VFS-1450-3-acl-improvements 4815130 VFS-1450 Add permission_changed_event. 179c192 VFS-1450 Apply clang-format. e4d1cfa VFS-1450 Adjust tests to new helper interface. ae81389 Merge commit 'e39f71962e05fa32629c75fcabc85cca6e15112b' into feature/VFS-1450-acl-improvements 60546a5 VFS-1450 Add fileUuid argument to read and write operations in IStorageHelper. 5b34cdc VFS-1450 Remove storage_id from get_helper_args message 149b44a VFS-1450 Update clproto. 5049adf Merge commit '52fc8c5e28c809bdef6303f3091a319bdf1a61e9' into feature/VFS-1450-acl-improvements 3483f26 VFS-1398 Change ProxyIORequest.space_id to ProxyIORequest.file_uuid. 721b621 VFS-1376 Change subscriptions processing on handshake. Add subscription container wrapper. f7aeda4 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1376-acceptance-tests-for-events 10384fc Merge pull request aws#99 in VFS/clproto from feature/VFS-1398-cdmi-metadata to develop 0856cbb Merge pull request aws#97 in VFS/clproto from feature/VFS-1371-clusterproxy-storage-helper to develop d6915d1 Merge commit '9a0454281fcd3fecd189fc4798a9bea2c7d33b7d' into feature/VFS-1371-clusterproxy-storage-helper 4ebb492 Merge remote-tracking branch 'origin/develop' into feature/VFS-1371-clusterproxy-storage-helper 8afb7e1 VFS-1371 Add SpaceId to GetHelperParams and FileLocation. 2e82140 VFS-1371 Add space_id to ProxyIORequest. e095c2e Merge remote-tracking branch 'origin/feature/VFS-1371-clusterproxy-storage-helper_merge' into feature/VFS-1371-clusterproxy-storage-helper aa81caa Merge remote-tracking branch 'origin/develop' into feature/VFS-1371-clusterproxy-storage-helper dd0b1a6 VFS-1376 Fix spinlock in TypedStream and client hang when unmounting in the foreground. d1bfbca VFS-1398 Rename xattr.key to xattr.name. b38ccbb Merge commit '9b37f4c643fd7a22cbb9f98be676c4f93e0a9289' into feature/VFS-1376-acceptance-tests-for-events 6b4c704 VFS-1398 Add xattr messages to possible fuse messages. 4a969b5 Merge branch 'feature/VFS-1407-client-get-subscriptions-on-handshake' into feature/VFS-1398-cdmi-metadata e640bcc VFS-1398 Add xattr messages. 8ac886e VFS-1407 Getting subscriptions on handshake response. 7689bb6 VFS-1407 Getting subscriptions on handshake response. a68b34f Merge remote-tracking branch 'origin/develop' into feature/VFS-1371-clusterproxy-storage-helper 5bae72d VFS-1371 Remove SpaceID from ProxyIO arguments. 9689405 Merge commit '3000ff39ed9e607e583d0411fea900332242eb1a' into feature/VFS-1371-clusterproxy-storage-helper 7e5d95b VFS-1371 Add POSIX error codes. a9da5c4 VFS-1289 Enable NIF library build. 4b9a5e0 VFS-1289 Fix compilation errors of NIF libs. 277fd05 Merge branch 'feature/VFS-1371-clusterproxy-storage-helper_merge' into feature/VFS-1371-clusterproxy-storage-helper 2d49007 VFS-1371 Add protocol messages for ProxyIO helper. b11995b Merge pull request aws#96 in VFS/clproto from feature/VFS-1289-event-manager-for-one-client-v.3.0 to develop a10c6f5 Merge commit '65470c82c12f8a2644f2509a330a6be4387ba4f0' into feature/VFS-1289-event-manager-for-one-client-v.3.0 e78734c VFS-1289 Add message that can carry multiple events of the same type. 00e73be Merge pull request aws#95 in VFS/clproto from feature/VFS-1289-event-manager-for-one-client-v.3.0 to develop d2b074b Merge commit '4412137cb52755a79d4ae9f2714c771417c6d620' into feature/VFS-1361-rebase-build-dockers-on-ubuntu-15.10 3b15520 Merge commit '347fc6b6b2e6b4676a8eb00f45805823ff9f6fe9' into feature/VFS-1289-event-manager-for-one-client-v.3.0 f7f9162 VFS-1289 Make stream ID optional in MessageStreamReset message. 863b0ca VFS-1289 Change type of subscription ID from unsigned to signed integer. 409c062 VFS-1289 Add stream ID to stream reset message. 6498a3f VFS-1289 Change name of 'oneof' constructions in event messages. 7456587 VFS-1289 Enable NIF library build. 197b171 VFS-1289 New events multilayer architecture. Unit and integration tests extension. e547efc VFS-1289 New events multilayer architecture. Unit and integration tests extension. 2bfbbfd Merge commit '53600cf9070a265d32ddb20a03b348efe37cb1c3' into bugfix/VFS-1255-onedata-packages-is-green-on-bamboo cc6d274 Merge commit 'bfa0f14acf0ebe4ae00ef0d2b8885b3a8c7a89a2' into feature/VFS-1289-event-manager-for-one-client-v.3.0 24bc3db VFS-1289 Fix compilation errors of NIF libs. a47f9c5 Merge commit '550e45ccae7d729e6325d6f80986a112ac012791' into feature/VFS-1289-event-manager-for-one-client-v.3.0 33b7776 Merge commit '1a1105c65d9a2e13d99effa9d9f331beb6ba93b1' into feature/VFS-1289-event-manager-for-one-client-v.3.0 93e9422 Implement sequencer tests. 1219ed3 Merge commit '34caa7f1ce287843c8f7db7d8fc31e5efacd8140' into feature/VFS-1289-event-manager-for-one-client-v.3.0 6891efe VFS-1289 Implement sequencer behaviour. fa07703 VFS-1289 Implement sequencer behaviour. dac645c Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1289-event-manager-for-one-client-v.3.0 41907e7 VFS-1289 Refactor events framework. Extend unit tests. Fix integration tests. a52d053 Merge remote-tracking branch 'origin/develop' into feature/VFS-1235-operations-on-files-at-the-client d606115 Merge pull request aws#93 in VFS/clproto from feature/VFS-1235-operations-on-files-at-the-client to develop 875ebb3 Merge remote-tracking branch 'origin/develop' into feature/VFS-1235-operations-on-files-at-the-client 1eac08d Merge remote-tracking branch 'origin/develop' into feature/VFS-1235-operations-on-files-at-the-client 5ef8fe0 VFS-1235 Implement PushListener. 164b577 Merge pull request aws#89 in VFS/clproto from feature/VFS-1223-implementation-of-macaroons-for to develop 4af31f8 VFS-1235 Implement truncate. 20b8d05 VFS-1235 Implement truncate. 993efc6 VFS-1235 Implement truncate. b075ea2 VFS-1235 Implement read. e5ffe9b VFS-1235 Introduce cache classes. dcf3adb VFS-1223 Add a refreshing macaroons capability. 446bef1 VFS-1223 Add a refreshing macaroons capability. 4dbd2e5 Merge pull request aws#88 in VFS/clproto from feature/VFS-1217-optimization-of-development-environment to develop 4239d9d VFS-1217 Generate clproto erl files only if not yet generated. f9d0890 Merge remote-tracking branch 'origin/feature/VFS-1223-implementation-of-macaroons-for_merge' into feature/VFS-1223-implementation-of-macaroons-for d0fdb94 VFS-1217 Clear environment compilation flags. 49787dd Merge remote-tracking branch 'origin/develop' into feature/VFS-1217-optimization-of-development-environment b3f0853 VFS-1223 Add a refreshing macaroons capability. 3c2855a VFS-1223 Add a refreshing macaroons capability. 968a835 VFS-1235 Change protocol to support file operations. ba7a1b5 VFS-1235 Change protocol to support file operations. a6247e7 VFS-1235 Change protocol to support file operations. 1b2d59c Merge commit '597c423bbe1ab1785a5c856c38b277b4bd6793bb' into feature/VFS-1235-operations-on-files-at-the-client d69169c VFS-1235 Add protocol for operations on regular files. 055870f VFS-1217 Build messages NIF through CMake. 44e3dfe Merge pull request aws#87 in VFS/clproto from feature/VFS-1147-first-operations-on-directories to develop 3d6a3d3 VFS-1153 Fix handshake logic. 356c182 Merge commit 'f72777be3be31deba0be6061685167b4a6f4a446' into feature/VFS-1153-first-operations-on-directories 8db7fab VFS-1153 Add Rename and ChangeMode messages. 0d9f35f VFS-1153 Add Rename and ChangeMode messages. e204df8 VFS-1153 Add Rename and ChangeMode messages. ed31a3b Merge commit '44a307c1b92d6fa3e1c500d977dcc6cc868a2168' into bugfix/VFS-1160-fix-communicator-integration-tests b974f01 VFS-1160 Fix unit tests. c8554b2 Merge commit '4dc99eb2ade9497b73ef16b916010bb2f2c403e9' into bugfix/VFS-1160-fix-communicator-integration-tests 6513820 VFS-1160 Pull in erlang-tls. 305846f VFS-1160 Pull in erlang-tls. 77ad057 VFS-1153 Catch constructor exceptions in communication translator. bba3d3e Merge commit '1ae96d4603f4459624d3020cd03f093404713d0f' into feature/VFS-1153-first-operations-on-directories 6d2e402 VFS-1153 Update clproto. 88e184d Merge branch 'feature/VFS-1161-reduce-dependencies-on-experimental' into feature/VFS-1153-first-operations-on-directories cadf9b1 Merge commit 'e5c358514c60260f8a0b56fb9ad5eb0a91f13681' into feature/VFS-1161-reduce-dependencies-on-experimental 5a79af5 add ChangeMode and Rename messages 647b045 VFS-1147 fix ambiguous file entry cb6d5f3 Merge remote-tracking branch 'origin/develop' into feature/VFS-1147-first-operations-on-directories f06106b Merge pull request aws#86 in VFS/clproto from feature/VFS-1145-ssl2-integrated-with-oneprovider to develop 354be43 VFS-1147 Fix compilation. c322a9b Merge commit '054e6f18025dc858eb15cfb2f4f6be67c2af0653' into feature/VFS-1153-first-operations-on-directories 3ab63b5 VFS-1147 Change FileChildren message structure. 68da8d5 Merge branch 'feature/VFS-1147-first-operations-on-directories_merge' of ssh://git.plgrid.pl:7999/vfs/clproto into feature/VFS-1147-first-operations-on-directories 4de7561 VFS-1153 Add new FUSE messages domain objects. 85b8d0e VFS-1153 Add new FUSE messages domain objects. 158ec3b VFS-1147 Add name to FileAttr message. acdd6ee VFS-1153 Reformat helper files. 94c553f Merge commit '1c75eae2fb93d17e9fb4fcb571a4f8068c7e18ec' into feature/VFS-1153-first-operations-on-directories 2f770d5 VFS-1147 Change FileChildren message format. 61ab98b VFS-1147 Add UUID to file attr. 39844f5 VFS-1147 Using parent UUID for directory creation. 38e2cff Fix oneclient compilation on OS X. b7b0939 Merge commit '2acc59538ffb708736554de8d56b17a1809a4212' into feature/VFS-1127-performance-test-framework-for-client c5f4a1a Merge branch 'feature/VFS-1142-client-packages' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1127-performance-test-framework-for-client 30da1e5 VFS-1142 Take glog from system. fd62e27 VFS-1142 Move cmake scripts to cmake/ dir. 46b5639 VFS-1147 Add communication protocol between FUSE client and the server. 7766498 VFS-1145 Remove oneproxy messages. 534ceb6 VFS-1142 Add missing cmake dependencies. 3439428 Merge commit '1c56de6208ccb274c198f6dca20e28d44e4ff407' into feature/VFS-1127-performance-test-framework-for-client 1d5c47a Merge pull request aws#85 in VFS/clproto from feature/VFS-1129-packages-deb-and-rpm to develop 90a4037 Merge commit '85ead06cc1a22386d9534f6e53a2a7dbf7492991' into feature/VFS-1127-performance-test-framework-for-client 62ea25f VFS-1129 Revert gpb update, do not delete priv/vsn.git during clean. 007acd1 VFS-1129 Update gpb. 47e5289 Merge commit '908734e934b8fa3c007f4d814a43cb0f19ebe454' into feature/VFS-1127-performance-test-framework-for-client c1f591b Merge commit '8004ab7405cc878574b030c964ccdccfea301706' into feature/VFS-1127-performance-test-framework-for-client fefdeb3 Merge commit '61ab02e72781719e793a5a9c410096826f2c4b9f' into feature/VFS-1127-performance-test-framework-for-client 281c0f3 Merge pull request aws#84 in VFS/clproto from feature/VFS-1115-rpm-packages to develop 010fc07 VFS-1115 Update gpb. 8c38886 Merge commit 'f7841aacbba540583eefa18fea19957abb7f943a' into feature/VFS-1072-fuse-callback-mock 6d2523e Merge pull request aws#83 in VFS/clproto from feature/VFS-1111-communication-layer-unit-tests to develop 8820963 Merge remote-tracking branch 'origin/develop' into feature/VFS-1111-communication-layer-unit-tests f2a7fb9 Merge commit 'dcc8030bc023ed90d8f6b2c8bbcc79bf3434e001' into feature/VFS-1072-fuse-callback-mock 4b1749d Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1072-fuse-callback-mock 8ab110b VFS-1111 Implement Translator layer tests. e738d82 VFS-1110 Propagate errors on first connection in client. 40def9b Merge commit '450fcbafc1ad1c5bb018cc42defbab15d51d0021' into feature/VFS-1110-propagate-errors-on-first-oc-handshake ae65b73 VFS-1072 Fix client compilation error. 7408c67 Merge commit '4e36a21b7fe71989db405f708099c45887e02dc1' into feature/VFS-1072-fuse-callback-mock b0c0a2d VFS-1072 Implement unit tests for aggregators and streams. 9a0e805 Merge commit 'fd560a82a3bf1333bf0a2ffe07daf34076a44504' into feature/VFS-1072-fuse-callback-mock 9e6c458 VFS-1072 Add unit tests for events. 96409d9 VFS-1072 More asynchronous events. 3a59bc2 Merge commit '6eacd168e35c3a0cb8a9e2552ab5e1c23c603217' into feature/VFS-1093-improve-futures-in-communication c2a64c9 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1034-oc-protocol-integration-and-tests 8d93933 VFS-1072 Add handlers for server messages concerning events. e388ef5 Merge commit '510d229ba5e5274dd810e71ba8333a0f08d13325' into feature/VFS-1072-fuse-callback-mock bb2e0e2 Merge branch 'feature/VFS-1034-oc-protocol-integration-and-tests' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1072-fuse-callback-mock ddd9ae9 Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1072-fuse-callback-mock 920f916 Merge commit '07b7972cb15a1a77b7640da6b1ddca4ad8e5275a' into feature/VFS-1034-oc-protocol-integration-and-tests a11937a Merge commit 'd93cb991c7f69cb22ce018321013c6753c31ba89' into feature/VFS-1056-several-improvements-to-docker-scripts 42d8e36 Merge commit '6179f299ff599d9d1a2efaf271655ad2afd68b6b' into feature/VFS-1034-oc-protocol-integration-and-tests d36e0f4 Merge commit '356da66a3e2302de252d1944d416142596098fe1' into feature/VFS-1034-oc-protocol-integration-and-tests 38f669d Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1034-oc-protocol-integration-and-tests c20cead Merge commit '3762404702239e1bbf8eb88e1025ec2b1501204e' into merge_helpers 8385906 Merge commit 'bc24de354ab4cf7a845480229c0536010f399b46' into feature/VFS-1016-new-messages-handling-with-streaming 1b807c3 Merge pull request aws#82 in VFS/clproto from feature/VFS-1098-dialyzer-works-for-gr to develop d67ad39 VFS-1098 Apply recommended changes. 100ef2f Merge branch 'feature/VFS-1016-new-messages-handling-with-streaming' of ssh://git.plgrid.pl:7999/vfs/oneclient into feature/VFS-1034-oc-protocol-integration-and-tests 433c7cd Merge commit '3a8ce283460a415eeccadd039f781bbf4fab3e64' into feature/VFS-1016-new-messages-handling-with-streaming 36d56fe VFS-1098 Generating Erlang NIFs. 6268a5f VFS-1098 Add oneproxy messages. d657d2e VFS-1098 Change Protocol Buffers compiler. 0b8a612 VFS-1098 Create rebar application. 1861cd4 Merge pull request aws#80 in VFS/clproto from feature/VFS-1016-new-messages-handling-with-streaming to develop 905419b Merge commit 'f50b65662ff4840c849b11bf677b22ff3ef25b81' into feature/VFS-1034-oc-protocol-integration-and-tests e5f6435 VFS-1016 Add new communication stack to oneclient. 90fadd2 Merge commit 'bc4d705dafd1d6eb7cc79a4e14f1ab5ea60b500f' into feature/VFS-1016-new-messages-handling-with-streaming d4ea68b Merge commit '5369641d1ca1b989f1d9594768f5fefae0566332' into feature/VFS-1016-new-messages-handling-with-streaming ccd8e29 Merge commit '0af6986221cf900ce030273c87e6c0ef23ca4751' into feature/VFS-1016-new-messages-handling-with-streaming bb9954e Merge remote-tracking branch 'origin/feature/VFS-1034-oc-protocol-integration' into feature/VFS-1016-new-messages-handling-with-streaming 2c3dbba VFS-1034 Merge develop. a5acf7c Merge pull request aws#78 in VFS/clproto from VFS-1035-Add-CMakeLists-to-protocol to develop 690de64 Merge pull request aws#79 in VFS/clproto from feature/VFS-1037-op-communicator-performance-test to develop 3800374 VFS-1037 naming changes d1ba29d VFS-1037 doc 292f02e VFS-1037 repair invalid imports 845b3b6 VFS-1037 protocol version messages added as oneof client/server message c03a2a5 VFS-1037 rename ping_messages to diagnostic_messages,add 'GetProtocolVersion' message b8393dd VFS-1037 rename ping_messages to diagnostic_messages,add 'GetProtocolVersion' message 9899db7 VFS-1037 doc update 7a1ea8f VFS-1016 Improve protocol. 684ad1b Merge pull request aws#77 in VFS/clproto from VFS-1035-Add-CMakeLists-to-protocol to feature/VFS-1034-oc-protocol-integration 4d96944 Merge commit 'e3e9754d912132968285e58286f3f5436c48600d' as 'helpers' be6f29f VFS-1035 Rewrite CMakeLists to allow building helpers as subproject. f53a2c5 VFS-1034 Fix protocol compilation. 803f77a VFS-1037 Data message cafd2cc ping messages c421abf Merge pull request aws#76 in VFS/clproto from feature/VFS-1009-op-new-protocol-handler to develop 33a8317 beautify protocol v2 4c8508a beautify protocol 8584c8a VFS-997 Add stream message and descriptions + refactoring. 4b27927 change type od message_id from uint64 to bytes 9423229 change handshake message e63b893 certificate msg extended 5f3db6c remove header 6f2b815 remove HandshakeAcknowledgement 2d2761d typo fix 2e5237e new handshake messages 2ea50b8 VFS-997 Extend protocol messages. cbe54db Merge branch 'feature/VFS-1009-op-new-protocol-handler' of ssh://git.plgrid.pl:7999/vfs/clproto into feature/VFS-1005-new-protocol-oc-op 2b37656 rename 'oneof' messages 0069f68 add new proto file aggregating server and client messages cfb51b4 remove HandshakeRequest data 2b72803 VFS-997 Add communication messages. 5ecbf14 Merge pull request aws#75 in VFS/clproto from feature/VFS-1005-new-protocol-oc-op to develop fcd7b8b VFS-1005 Apply recommended changes. b73c8bd VFS-1005 Minor fix for ServerMessage. 27bde46 VFS-1005 Change wrapping message structure. 613c3a8 VFs-1005 Add partial message mechanism. 50e3537 VFS-1005 Fix Erlang compilation errors. 6260815 VFS-1005 New protocol first implementation. 4bf6ec3 Merge pull request aws#68 in VFS/clproto from feature/VFS-960-access-to-fiemaps to develop cbdfa01 GetFileBlockMap change uuid to logical name a61592d GetFileBlockMap and FileBlockMap messages d5e2d40 Merge pull request aws#67 in VFS/clproto from feature/VFS-936-async-update-for-file-attributes to develop c84f2f9 VFS-936 add uuid field to file attributes 6607496 Merge pull request aws#66 in VFS/clproto from feature/VFS-931-fsmap-integration-in-fuse-client to develop 7d8a5eb Merge branch 'develop' of ssh://git.plgrid.pl:7999/vfs/clproto into feature/VFS-931-fsmap-integration-in-fuse-client 5d9b1b7 Merge pull request aws#65 in VFS/clproto from feature/VFS-932-block-info-in-events to develop 924cd10 VFS-931 Update BlocksAvailable message. 85b835c VFS-931 Add UpdateFileBlockMap message. 7e352e4 VFS-932 Change event message. d30494b VFS-932 Change event message. 6df0c5b VFS-932 Change event message. b1dbeec VFS-932 Add block properties to event message. 8f9daaa Merge pull request aws#64 in VFS/clproto from feature/VFS-921-rtransfer-goes-to-fslogic to develop 8cffa61 remove relative truncate aae8331 add size_relative flag to FileTruncated message a3614af typo fix b129904 FileTruncated message 527ce4e FileBlockModified message 97fb9d7 SynchronizeFileBlock message fbf1457 Merge pull request aws#59 in VFS/clproto from feature/VFS-888-map-files-to-blocks-for-fuse-and to develop 9e59d72 Merge remote-tracking branch 'origin/develop' into feature/VFS-888-map-files-to-blocks-for-fuse-and 68c7f87 VFS-888 Set 'blocks' as a repeated field. eec028d Merge pull request aws#58 in VFS/veilprotocol from feature/VFS-858-new-cdmi-features-user-requirements to develop 4ecf392 VFS-888 Change identification fields of RequestFileBlock. 606de6b VFS-888 Add block-related messages and message fields. 96e3bfa Merge branch 'develop' into feature/VFS-858-new-cdmi-features-user-requirements 320d88c add acl flag a8bc820 Merge pull request aws#57 in VFS/veilprotocol from feature/VFS-837-veil-to-onedata to develop 98fd52a VFS-837 Final renaming. 1351802 Merge pull request aws#56 in VFS/veilprotocol from feature/VFS-837-veil-to-onedata to develop 8fec391 VFS-837 Make onedata start with an uppercase letter. d77f98f VFS-837 Refactor readme. d7ea703 VFS-837 Rename namespace. 0a96244 VFS-837 Change from 'veil' to 'onedata'. 6751fe1 children count messages 21b6448 new acl messages b7ad0a7 Merge pull request aws#54 in VFS/veilprotocol from feature/VFS-830-dokladne-przejrzenie-dokumentacji to develop 947a614 Merge branch 'develop' into feature/VFS-830-dokladne-przejrzenie-dokumentacji cd83847 turn back develop changes 6ffbe83 Merge pull request aws#53 in VFS/veilprotocol from feature/VFS-828-zmiana-sposobu-uwierzytelnienia-tokenem to develop 2c2fe29 Merge pull request aws#50 in VFS/veilprotocol from feature/VFS-829-move-between-providers to develop c1958c5 Merge pull request aws#51 in VFS/veilprotocol from master to develop bbbbbaa VFS-828 Remove identity field in HandshakeRequest. d6c8b3a VFS-829: fix typo 52aeab3 revert newest develop changes b8a16f8 extended Attrs api f1a5e5c Merge pull request aws#49 in VFS/veilprotocol from feature/VFS-829-move-between-providers to develop 278cec8 Merge pull request aws#48 in VFS/veilprotocol from feature/VFS-820-zastapic-obecne-checki-uprawnien to develop 2c6199a Merge pull request aws#47 in VFS/veilprotocol from feature/VFS-781-uwierzytelnienie-klienta-przy-pomocy to develop ab8da14 VFS-829: fix compile b0a4b59 VFS-829: fix compile d1bc237 VFS-829: add DirEntry to protocol 57ef0e7 VFS-829: add DirEntry to protocol 61faf51 VFS-820, change message name a8472c1 Merge branch 'feature/VFS-781-uwierzytelnienie-klienta-przy-pomocy' of ssh://git.plgrid.pl:7999/vfs/veilprotocol into feature/VFS-820-zastapic-obecne-checki-uprawnien 9cb05c4 VFS-820, add CheckPerms message bdf9d21 VFS-781 Fix protocol. 2202298 Merge remote-tracking branch 'origin/develop' into feature/VFS-781-uwierzytelnienie-klienta-przy-pomocy e0922ca Merge pull request aws#46 in VFS/veilprotocol from feature/VFS-784-obsuga-cdmi_capabilities to develop 4cd3381 VFS-781 Add an identity field for handshake request. 9440a98 GetFileUuid and FileUuid messages added 8dcf62c Merge pull request aws#45 in VFS/veilprotocol from feature/VFS-754-dostep-zdalny-do-innego-providera to develop 8590cc1 VFS-754: add cluster proxy getattr 47b8904 VFS-754: add cluster proxy getattr 0de5be7 Merge remote-tracking branch 'origin/develop' into feature/VFS-754-dostep-zdalny-do-innego-providera cfbaf77 VFS-754: add message decoder to answer message ef27ce5 Merge pull request aws#40 in VFS/veilprotocol from release-1.0 to develop a03f86a Merge pull request aws#39 in VFS/veilprotocol from release-1.0 to master 939895c Merge pull request aws#38 in VFS/veilprotocol from bugfix/VFS-751-release-1.5-wypuszczony to release-1.0 e4dc26e Release notes updatd 8670fb4 Merge pull request aws#37 in VFS/veilprotocol from bugfix/VFS-751-release-1.5-wypuszczony to release-1.0 b77373b Release notes added f1355db Merge pull request aws#36 in VFS/veilprotocol from feature/VFS-749-clusterproxy-uzywany-gdy-brak-accessu to develop 4dc1ed0 VFS-754: add global user id to cluster message 84322ed VFS-754: add ProviderMsg f5394d9 VFS-754: add access tokent to cluster message 4d44532 Merge branch 'feature/VFS-749-clusterproxy-uzywany-gdy-brak-accessu' into feature/VFS-754-dostep-zdalny-do-innego-providera 944861f VFS-754: make space_id optional 0f61799 VFS-749: add ClusterProxy context info d17ccb8 VFS-754: add space_id to RFM 76c5dff Merge pull request aws#35 in VFS/veilprotocol from feature/gui_release_to_develop to develop b41dd32 Merge branch 'release-1.0' into feature/gui_release_to_develop 41d9a76 Merge pull request aws#34 in VFS/veilprotocol from feature/VFS-731-wysyanie-poziomu-uprawnien-pliku to release-1.0 184b766 add mode to CreateFile message 25188df Merge pull request aws#33 in VFS/veilprotocol from release-1.0 to develop 37b1a8d Merge pull request aws#32 in VFS/veilprotocol from bugfix/VFS-592-dostep-do-pliku-niezgodny-z-ustawionym to release-1.0 68962ce default open_mode msg changed from "none" to "" fe42fe9 Merge branch 'release-1.0' into bugfix/VFS-592-dostep-do-pliku-niezgodny-z-ustawionym 74f49cb Merge pull request aws#31 in VFS/veilprotocol from bugfix/VFS-608-niemozliwosc-zarejestrowania-DN to release-1.0 681cdfe open_mode optional parameter added to GetFileLocation msg e5424af VFS-608, fix naming 194e6d0 VFS-608, add fields to proto to handle cert verification d1395fb VFS-608, add error description field to Answer record a459825 Merge pull request aws#30 in VFS/veilprotocol from VFS-555 to develop 5677ce6 [VFS-555] typo fix 0862a00 [VFS-555] EventStreamConfig extended e420048 Merge pull request aws#27 in VFS/veilprotocol from VFS-489 to master ee7b249 VFS-489 Message fix. 2263e19 VFS-489 Make some message fields required. af6e6b8 VFS-489 Create more specific storage test messages. e86b601 VFS-489 Direct IO storage message refactored. ceaedf2 VFS-489 Direct IO storage message added. ec8208e VFS-489 Storage test messages refactored. fdf35b6 VFS-489 Storage test messages added. 4db85aa Merge pull request aws#26 in VFS/veilprotocol from VFS-482 to master b07e7bd Merge branch 'VFS-482' of ssh://git.plgrid.pl:7999/vfs/veilprotocol into VFS-482 abc677e Generic event message added f517338 Merge pull request aws#24 in VFS/veilprotocol from VFS-443-centralny-logger-dla-clientow to master 81fd5c1 Merge pull request aws#25 in VFS/veilprotocol from VFS-441 to master 680c66c [VFS-441] comment added c71b9ea VFS-443 Add logging protocol. ecae432 [VFS-441] EventTransformer added cf0ed2e Merge pull request aws#23 in VFS/veilprotocol from VFS-441 to master 26e569e [VFS-441] pushmessage message removed 578c1e9 [VFS-441] Comments for EventStreamConfig dd4be71 [VFS-441] eventaggregatorconfig message extended 37c9a41 [VFS-441] client fetch event producer configuration on startup 06caeb6 [VFS-441] protocol buffer messages for events improved ce371ef [VFS-413] messages for events subscription added 9d289fd Merge pull request aws#22 in VFS/veilprotocol from VFS-442 to master e0b9ed9 VFS-442 Add answer field to StatFSInfo message. b001a78 Merge pull request aws#21 in VFS/veilprotocol from VFS-442 to master aef57ff VFS-442 Merge veilprotocol messages. 7e36203 VFS-442 GetFilesSize and FilesSizeInfo messages added. 0aa0848 VFS-442 GetQuota and QuotaInfo messages added. 1e45be5 Merge pull request aws#20 in VFS/veilprotocol from VFS-435-problem-z-wyswietlaniem-duzych-plikow to master 32aaf5e another changes in size type from int32 to int64 45b786e size type changed from int32 to int64 87ac2f6 Merge pull request aws#19 in VFS/veilprotocol from VFS-240 to master 995da9b [VFS-240] Message CreateFileAck changed 66c68e3 [VFS-240] CreateFileAck message added 8548237 Merge pull request aws#18 in VFS/veilprotocol from VFS-356 to master 8a2eb34 ChangePermsAtStorage message added ec4d3e4 Merge pull request aws#17 in VFS/veilprotocol from VFS-211 to master 1402c88 VFS-211 Links field to files attribute added. e808f04 Merge pull request aws#16 in VFS/veilprotocol from VFS-264 to master 58d5334 Merge pull request aws#15 in VFS/veilprotocol from VFS-252 to master d11ae1d Merge pull request aws#13 in VFS/veilprotocol from VFS-260 to master 2645d9b Merge pull request aws#12 in VFS/veilprotocol from VFS-167 to master 34bba96 Merge pull request aws#11 in VFS/veilprotocol from VFS-162 to master 5f631d2 Merge pull request aws#10 in VFS/veilprotocol from VFS-159 to master b77991a Merge pull request aws#9 in VFS/veilprotocol from VFS-162 to master b1578ab Merge pull request aws#8 in VFS/veilprotocol from VFS-156 to master 41bc0be Merge pull request aws#7 in VFS/veilprotocol from VFS-127 to master 4781952 Merge pull request aws#6 in VFS/veilprotocol from VFS-113 to master 11d5d1a Merge pull request aws#5 in VFS/veilprotocol from VFS-101 to master 72bf94c fuse messages updated 1956dbb Merge pull request aws#4 from VFS-80,85 to master 9b65f25 FileChildren fix 1ff7d28 Merge pull request aws#3 from VFS-80 to master cb54b30 decoder fields corrected 4048cfb Merge branch 'VFS-80' of ssh://git.plgrid.pl:7999/VFS/veilprotocol into VFS-80 b9a67a5 Added decoder_name and messages for directory creation and location validity info 9f660cf Added decoder_name and messages for directory creation and location validity info 1b7b40b Merge pull request aws#1 from VFS-80 to master 295be28 fuse messages e85f681 fuse messages 6dcc3aa Initial Commit git-subtree-dir: helpers git-subtree-split: 6280b36aa0a8fc1277758cd33077ac0b35df1398
I can't get this to work... I have a char* array with some eof characters (.png file, but I would like not use FStream), I can't figure out how to send it. I can't use StringStream, because of eof. The solution that was originally suggested by OP doesn't work for me, I just get timeout error. I've also tried creating IOStream like described here: http://stackoverflow.com/questions/7781898/get-an-istream-from-a-char But that doesn't work either. |
This is currently being reviewed internally, but I'd love your thoughts while we're at it: https://s3.amazonaws.com/aws-sdk-cpp-demos/transferRewrite.diff Notes: Deleted TransferClient and everything related to it. Added a simpler interface, TransferManager. TransferHandle is the other half of the control interface which is what the user would use to control their transfers. I added a few utilities to core to support the changes. Largely a generic queue locker, and a std::stream_buf that runs off of a preallocated buffer. Later I'll be adding parallel downloads (harder to pull off), and directory synchronization, but this has feature parity with the original TransferClient. Major performance differences: Things I'm not happy about: Testing notes: |
S3Client has no member named "SetRange", right?
|
See GetObjectRequest::SetRange
…Sent from my iPhone
On Dec 6, 2016, at 7:52 AM, hailbird ***@***.***> wrote:
S3Client has no member named "SetRange", right?
error: 'class Aws::S3::S3Client' has no member named 'SetRange'
context->client->SetRange(range.str());
^
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or mute the thread.
|
I tried it before I asked the question, but failed. See issue-366 for detail. I checked the signature is correct by enhancing libs3 and do the same thing. The enhaced libs3 with v4 support can get the range of the object. |
Added redirection js and a generator script to be run at doc gen time.
Hi, In advance sorry if this is not the right thread for my question. I have a question about TransferManager UploadFile function. I am able to transfer 5Mb file, but when I tried to upload bigger file 7MB or more. I get "[WARN]AWSErrorMarshaller [72860] Encountered Unknown AWSError What does this error means? |
I am having similar problems with the AwsTransfer library, particularly on the "DownloadFile" function. Ideally, I do not want to write to a file and then have to read the contents back into memory. Your integration tests here: https://github.com/aws/aws-sdk-cpp/blob/master/aws-cpp-sdk-transfer-tests/TransferTests.cpp#L194-L235 check the uploaded file by downloading to an FStream. I am able to successfully do this; however, I have not been able to successfully implement the this to an
Do I need to preallocate the size of the stringstream before passing? |
The answer to the original question isn't correct or helpful (ie, use transfer manager). In my experience, you cannot use stringstream to upload binary data; at least, not in the way documented above, with pubsetbuf, pubseekpos and seekg(0). Use boost bufferstream. See #533 |
we're about to kill of std::iostream usage in favor of a simpler interface. Iostream will be supported but wrapped. Hopefully this will make the whole issue go away. |
kill off* |
So, checking back; is there a simpler interface? Seems like people were still having same problem in January 18. See #785. |
I've got a suite of applications that produce very large binary buffers that I'd like to be able to intermittently write to and read from S3 with. I'd like to avoid large reallocations and copying of data and instead transfer the buffer directly to/from S3.
The PutObjectRequest wants an IOStream and the GetOjectRequest will allow you to provide a factory that creates an IOStream. So the best workaround I've got so far is to create a StringStream and use
pubsetbuf()
to override the stream's underlying buffer (in the snippets below, I've gotvoid* buffer
andsize_t bufferSize
).For the put:
And for the get:
This appears to work with the testing I've done so far, and as far as I understand streams it seems like this should accomplish what I want in terms of avoiding large allocations or copies. Just wondering if you have any thoughts on an easier/better way to do this or have any plans to add any overrides in the API to make this a little easier.
Also, to confirm, a single PutObjectRequest/GetObjectRequest will automatically do multi-part uploads for large transfers right? And if I don't override the rate limiter, by default it'll use as much network bandwidth as it can get?
Thanks.
-Adam
The text was updated successfully, but these errors were encountered: