pcloud: openwriterat: set default hints

This commit is contained in:
Georg Welzel 2024-12-03 17:21:20 -07:00
parent d1c054906c
commit 1aede367d1

View file

@ -385,22 +385,28 @@ func NewFs(ctx context.Context, name, root string, m configmap.Mapper) (fs.Fs, e
// Pass in the remote desired and the size if known.
//
// It truncates any existing object
func (f *Fs) OpenWriterAt(ctx context.Context, remote string, size int64) (fs.WriterAtCloser, error) {
func (f *Fs) OpenWriterAt(ctx context.Context, remote string, size int64) (fs.OpenWriterAtInfo, fs.WriterAtCloser, error) {
info := fs.OpenWriterAtInfo{
BufferSize: int64(16 * 1024 * 1024),
ChunkSize: int64(16 * 1024 * 1024),
LeavePartsOnError: true,
}
client, err := f.newSingleConnClient(ctx)
if err != nil {
return nil, fmt.Errorf("create client: %w", err)
return info, nil, fmt.Errorf("create client: %w", err)
}
// init an empty file
leaf, directoryID, err := f.dirCache.FindPath(ctx, remote, true)
if err != nil {
return nil, fmt.Errorf("resolve src: %w", err)
return info, nil, fmt.Errorf("resolve src: %w", err)
}
openResult, err := fileOpenNew(ctx, client, f, directoryID, leaf)
if err != nil {
return nil, fmt.Errorf("open file: %w", err)
return info, nil, fmt.Errorf("open file: %w", err)
}
if _, err := fileClose(ctx, client, f.pacer, openResult.FileDescriptor); err != nil {
return nil, fmt.Errorf("close file: %w", err)
return info, nil, fmt.Errorf("close file: %w", err)
}
writer := &writerAt{
@ -411,7 +417,7 @@ func (f *Fs) OpenWriterAt(ctx context.Context, remote string, size int64) (fs.Wr
fileID: openResult.Fileid,
}
return writer, nil
return info, writer, nil
}
// Create a new http client, accepting keep-alive headers, limited to single connection.