Comments (21)
This may be b/c my master and volumes where different versions... updating to latest will update soon.
from seaweedfs.
Updated everything to 0.68 still has issues, going back to 0.67.
from seaweedfs.
There is a very recent change on parsing multipart uploads.
from seaweedfs.
Related to this? #56
from seaweedfs.
Back to 0.67, things working again.
from seaweedfs.
@devinrsmith Could you PLEASE give the request payload or the example to show how the multipart uploads failed?
from seaweedfs.
@devinrsmith by the way, the tons of the error logs is needed too.
And our product env run the master bench very well without any issues.
from seaweedfs.
I've rolled back to 0.67 for the time, but I'll see if I can't get a dump of what was sent over the wire later. It should be a pretty standard multipart post I think. I don't think the error logs will help too much as it's just the same thing repeated over and over.
https://gist.github.com/devinrsmith/a55b55e2ac12d50c4559
from seaweedfs.
There is a way to cause into "dead-for" loop, the request payload didn't have a 'filename' properties in dispositionParams parsed from the Content-Disposition. Or you just submit a non-multipart form request to server?
for example:
------------gL6KM7cH2ae0Ij5ae0KM7ae0ae0gL6
Content-Disposition: form-data; name="file"; [filename="IMG_1840.JPG" ---miss ]
Content-Type: application/octet-stream
@devinrsmith could you give the some client javascript code(or the command line) to show how to submit the form
from seaweedfs.
Right. Previous version allows empty file names.
from seaweedfs.
@chrislusf but it seems not RFC(See https://www.ietf.org/rfc/rfc1867.txt ) RECOMMAND if the filename is empty, in the java world "commons-upload.jar" also check the filename to judge a multi-part item DO a file item
And mentioned in #56 , the "Previous version" it will just save the normal form item value into storage(for example: a user name value, even it's not a file), and I think this should be avoid.
So the weedfs should aways fetch the upload file data from a NAMED form item such as : "file"
from seaweedfs.
The previous version supports bare blob. This is because weedfs is more a key~blob store, not necessarily a file with filename.
I suggest we still support uploads with empty filename.
from seaweedfs.
Yep, this must be it. I'm not setting filename.
from seaweedfs.
But I think the weedfs is a HTTP file server too, it runs well, and it should handle these clients such as jquery uploadify tool's request.
"support uploads with empty filename" is fine, but "save the normal form item value into storage" should be avoid too.
Lets improve it
from seaweedfs.
Not saying we should not support other tools. But we still can support empty file names.
from seaweedfs.
@chrislusf the improved code: needle.go L64-L84:
part, fe := form.NextPart()
for {
if fe != nil {
glog.V(0).Infoln("Reading Multi part [ERROR]", fe)
e = fe
return
}
if part.FileName() != "" {
break //found the first <file type> multi-part
}
part2, fe := form.NextPart()
//no more multi-part items, we take the last multi-part item as the target
if fe == io.EOF {
break
} else {
part = part2
}
}
[EDIT: the solution does not work, because the internal reader has been moved to next cased the ioutil.ReadAll(part) method failed]
from seaweedfs.
Haven't tested it but looks good. Send a pull request please.
from seaweedfs.
ok, I'll do it later, it's 03:14 am, Jan 16 in China, I'm going to sleep now.
from seaweedfs.
@devinrsmith Maybe you can confirm the fix?
from seaweedfs.
Has a binary been compiled? I can check it out tomorrow.
from seaweedfs.
No compiled binary published yet. But I can send you the binary if you need it. Closing this. My local test seems good.
from seaweedfs.
Related Issues (20)
- SeaweedFS apps not works on the Windows HOT 10
- [Helm chart] seaweedfs service account usage is not clear in Filer
- Disk is full when testing performance with fio HOT 1
- Major issues with EC - "too few shards given" during nearly every reconstruction HOT 1
- about full.tar.gz HOT 4
- Weed shell incorretly resolves volume grpc port HOT 4
- Help with Quick Start S3 HOT 1
- Using the Vacuum command in Weed to delete files in the trash, but found that some files not in the trash were also deleted.
- [Mount] File changes are not propagated to other mounts if they are executing the file HOT 6
- [request] S3 API: Add batching small files via snowball-auto-extract
- Create solution for 170 million XML files per month HOT 2
- Run on Termux not working. HOT 3
- [vacuum] Error when committing vacuum 706: rename /opt/seaweedfs_volume/disk21/bucket_706.cpd no such file or directory HOT 1
- CSI Failed with Nomad HOT 2
- [volume] the given file is almost half filled with zeros from the beginning HOT 2
- Sqlite filer store is missing from Docker "_full" images HOT 2
- file.remote.sync doesn't push objects after network issue
- helm chart: resources should be a map HOT 1
- S3 API doesn't send data over gRPC HOT 3
- After a node is deleted, data is lost HOT 11
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from seaweedfs.