func GetFile(apiClient pfs.APIClient, repoName string, commitID string, path string, offset int64, size int64, shard *pfs.Shard, writer io.Writer) error { if size == 0 { size = math.MaxInt64 } apiGetFileClient, err := apiClient.GetFile( context.Background(), &pfs.GetFileRequest{ File: &pfs.File{ Commit: &pfs.Commit{ Repo: &pfs.Repo{ Name: repoName, }, Id: commitID, }, Path: path, }, Shard: shard, OffsetBytes: offset, SizeBytes: size, }, ) if err != nil { return err } if err := protostream.WriteFromStreamingBytesClient(apiGetFileClient, writer); err != nil { return err } return nil }
func getPFSContent(pfsAPIClient pfs.APIClient, commit *pfs.Commit, filePath string) ([]byte, error) { apiGetFileClient, err := pfsAPIClient.GetFile( context.Background(), &pfs.GetFileRequest{ File: &pfs.File{ Commit: commit, Path: filePath, }, }, ) if err != nil { return nil, err } buffer := bytes.NewBuffer(nil) if err := protostream.WriteFromStreamingBytesClient(apiGetFileClient, buffer); err != nil { return nil, err } return buffer.Bytes(), nil }
func GetFile(apiClient pfs.APIClient, repoName string, commitID string, path string, offset int64, size int64, fromCommitID string, shard *pfs.Shard, writer io.Writer) error { if size == 0 { size = math.MaxInt64 } apiGetFileClient, err := apiClient.GetFile( context.Background(), &pfs.GetFileRequest{ File: NewFile(repoName, commitID, path), Shard: shard, OffsetBytes: offset, SizeBytes: size, FromCommit: newFromCommit(repoName, fromCommitID), }, ) if err != nil { return err } if err := protostream.WriteFromStreamingBytesClient(apiGetFileClient, writer); err != nil { return err } return nil }