diff options
author | Janoš Guljaš <janos@users.noreply.github.com> | 2018-08-10 22:12:55 +0800 |
---|---|---|
committer | Balint Gabor <balint.g@gmail.com> | 2018-08-10 22:12:55 +0800 |
commit | 6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36 (patch) | |
tree | 3bcd5ab444bd7486a9011656c85baeee00216286 /swarm/api/manifest.go | |
parent | 3ec5dda4d2dd0dec6d5bd465752f30e8f6ce208c (diff) | |
download | dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar.gz dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar.bz2 dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar.lz dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar.xz dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.tar.zst dexon-6d1e292eefa70b5cb76cd03ff61fc6c4550d7c36.zip |
Manifest cli fix and upload defaultpath only once (#17375)
* cmd/swarm: fix manifest subcommands and add tests
* cmd/swarm: manifest update: update default entry for non-encrypted uploads
* swarm/api: upload defaultpath file only once
* swarm/api/client: improve UploadDirectory default path handling
* cmd/swarm: support absolute and relative default path values
* cmd/swarm: fix a typo in test
* cmd/swarm: check encrypted uploads in manifest update tests
Diffstat (limited to 'swarm/api/manifest.go')
-rw-r--r-- | swarm/api/manifest.go | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/swarm/api/manifest.go b/swarm/api/manifest.go index fbd143f29..2a163dd39 100644 --- a/swarm/api/manifest.go +++ b/swarm/api/manifest.go @@ -106,13 +106,18 @@ func (a *API) NewManifestWriter(ctx context.Context, addr storage.Address, quitC } // AddEntry stores the given data and adds the resulting key to the manifest -func (m *ManifestWriter) AddEntry(ctx context.Context, data io.Reader, e *ManifestEntry) (storage.Address, error) { - key, _, err := m.api.Store(ctx, data, e.Size, m.trie.encrypted) - if err != nil { - return nil, err - } +func (m *ManifestWriter) AddEntry(ctx context.Context, data io.Reader, e *ManifestEntry) (key storage.Address, err error) { entry := newManifestTrieEntry(e, nil) - entry.Hash = key.Hex() + if data != nil { + key, _, err = m.api.Store(ctx, data, e.Size, m.trie.encrypted) + if err != nil { + return nil, err + } + entry.Hash = key.Hex() + } + if entry.Hash == "" { + return key, errors.New("missing entry hash") + } m.trie.addEntry(entry, m.quitC) return key, nil } |