Skip to content

Commit d59c589

Browse files
committed
feat(driver/streamtape): implement PutURL for remote uploads
1 parent 11254dd commit d59c589

1 file changed

Lines changed: 29 additions & 0 deletions

File tree

drivers/streamtape/driver.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -381,6 +381,35 @@ func (d *Streamtape) Put(ctx context.Context, dstDir model.Obj, file model.FileS
381381
}, nil
382382
}
383383

384+
// PutURL initiates a remote upload from an external URL
385+
func (d *Streamtape) PutURL(ctx context.Context, dstDir model.Obj, name, url string) (model.Obj, error) {
386+
folderID := d.RootFolderID
387+
if dstDir.GetID() != "" {
388+
folderID = folderIDFromObjID(dstDir.GetID())
389+
}
390+
391+
params := map[string]string{
392+
"url": url,
393+
}
394+
if folderID != "" && folderID != "0" {
395+
params["folder"] = folderID
396+
}
397+
if name != "" {
398+
params["name"] = name
399+
}
400+
401+
var result remoteDlAddResult
402+
if err := d.callAPI(ctx, "/remotedl/add", params, &result); err != nil {
403+
return nil, err
404+
}
405+
406+
return &model.Object{
407+
ID: encodeRemoteUploadID(result.ID),
408+
Name: name,
409+
IsFolder: false,
410+
}, nil
411+
}
412+
384413
func (d *Streamtape) GetArchiveMeta(ctx context.Context, obj model.Obj, args model.ArchiveArgs) (model.ArchiveMeta, error) {
385414
return nil, errs.NotImplement
386415
}

0 commit comments

Comments
 (0)