MCPcopy Create free account
hub / github.com/DeepRec-AI/DeepRec / Read

Method Read

tensorflow/core/platform/s3/s3_file_system.cc:177–197  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

175 }
176
177 Status Read(uint64 offset, size_t n, StringPiece* result,
178 char* scratch) const override {
179 Aws::S3::Model::GetObjectRequest getObjectRequest;
180 getObjectRequest.WithBucket(bucket_.c_str()).WithKey(object_.c_str());
181 string bytes = strings::StrCat("bytes=", offset, "-", offset + n - 1);
182 getObjectRequest.SetRange(bytes.c_str());
183 getObjectRequest.SetResponseStreamFactory([]() {
184 return Aws::New<Aws::StringStream>(kS3FileSystemAllocationTag);
185 });
186 auto getObjectOutcome = this->s3_client_->GetObject(getObjectRequest);
187 if (!getObjectOutcome.IsSuccess()) {
188 n = 0;
189 *result = StringPiece(scratch, n);
190 return Status(error::OUT_OF_RANGE, "Read less bytes than requested");
191 }
192 n = getObjectOutcome.GetResult().GetContentLength();
193 getObjectOutcome.GetResult().GetBody().read(scratch, n);
194
195 *result = StringPiece(scratch, n);
196 return Status::OK();
197 }
198
199 private:
200 string bucket_;

Callers 4

ReadAllMethod · 0.45
TEST_FFunction · 0.45
NewAppendableFileMethod · 0.45

Calls 7

c_strMethod · 0.80
GetObjectMethod · 0.80
StrCatFunction · 0.50
StatusClass · 0.50
SetRangeMethod · 0.45
GetResultMethod · 0.45
readMethod · 0.45

Tested by 2

ReadAllMethod · 0.36
TEST_FFunction · 0.36