"File Server" or something like that would be better. You're quite right that "Object" is worthless terminology in this case - "Object" is basically nerdspeak for "thing".
It's not worthless terminology. It's a term that was chosen along time ago to distinguish this kind of storage architecture from filesystems and block devices: https://en.wikipedia.org/wiki/Object_storage.
This is a common issue in computer science and software development. Whenever new concepts are discovered or developed, they often need new names. You need to pick something that will distinguish this new concept from existing technologies. For laughs (kind of), look at configuration management software (Chef, Puppet, Cfengine, Ansible). They all quickly discovered that there were a whole bunch of new concepts that needed names, and while in some cases this hints that maybe these tools a bit over-engineered, it's hard to deny they've been popular and useful. Regardless, they all encountered these new concepts around the same time and they all made up their own names for them. So in chef you have cookbooks, where ansible has roles. Chef has roles where ansible has playbooks. Ansible has modules where puppet has providers and resource types. Ansible has tasks which are basically components of what chef would call a recipe and puppet would call a manifest.
All in all, I think "object storage" is a pretty fair term for the concept of a data store that neither heirarchical or sequential.
How is "Object Store" marketing bs? What is the proper term for an S3 object? It's not file, because file is a term that comes from the context of a filesystem, which is what S3 is not.
That is the technical term they've chosen to describe the key, its value, and all its associated metadata. As far as terms go, it's rather straightforward, in my opinion. They probably didn't use "file" because that usually implies a filesystem, which is specifically what S3 is not.
So when I download a file from a website, I'm not actually downloading the file? Since it doesn't become a file until it gets flushed to disk by my browser? So what is the name for the sequence of bytes that are actually downloaded?
So what is the name for the sequence of bytes that are actually downloaded?
If you explicitly requested your browser to create a file, then it could be any kind of data. If the web server triggered the download, your browser probably saw an HTTP header like "Content-type: application/octet-stream"
I will admit that there is an abstract concept of a "file" that exists outside the restricted realm of a "filesystem," but that's not amazon's target audience. Their target audience are programmers using APIs.
To a normal person, MySpreadsheet.xls is considered a file, no matter where it is stored. But S3 is not limited to this definition of file. An S3 object does not have to be a file in the sense of an excel spreadsheet or digital photos from your friend's wedding. An S3 object can just be a sequence of random data, which would be called a file if stored as ".dat" in a filesystem, but is not considered a file in the same abstract sense as a Word Document.
From a programming perspective files tend to come with a number of traits, like options for sequential access, random access, or appending. A file can often be modified without re-writing the entire thing. When you are programming with S3 objects, the only way to "append" something is to GET the object, retrieve the value from the object, append the data to that value, and then use PUT to upload entire object back into S3.
In this way, it is similar to FTP, except that FTP is most definitely about files and filesystems. S3 is not just for downloading files, but for retrieving any kind of data, usually directly into an application.
Given that S3's target audience is software developers, the programming version of the term "file" is more appropriate.
Your distinction well-noted, a file server still makes a great name for the service, considering its end purpose is serving files, and the fact that it's a "service" implies an interface of sorts apart from a standard file system.
It would except for the fact that "File Server" has been a commonly used term for a long time that hadn't ever been previously used to describe the technology that S3 actually is: an eventually-consistent distributed object store with a simple network API.
It's not like "Simple Storage Service" is weirdly obscure or anything.
I'd say you don't really download the file, you render it in a browser via the http protocol. Downloading implies you have a local copy of the html file or js or whatever.
File store? I agree that "object" makes no sense when applied to S3. It's not like you can store an "account" object and call a method to get back the current balance, with accrued interest for the time since last deposit added in. Or even store an image and call a method to get back a black-and-white version. Etc.
IMNHO "File server" implies it exports an actual file-system, and would also be wrong. In that light, I think S3 is more like FTP than a "file server". Sure, it might technically be more like WebDAV than FTP, perhaps "FTP-like service using HTTP for transport" is more accurate -- but I'm not sure it's better than just calling it FTP...
> I agree that "object" makes no sense when applied to S3. It's not like you can store an "account" object and call a method to get back the current balance, with accrued interest for the time since last deposit added in. Or even store an image and call a method to get back a black-and-white version. Etc.
Well, yes, they aren't OOP objects. But as you say, "files" isn't great either. But it was a theoretical alternative. For example, you could do a search/replace on the S3 docs here: http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingObjects...., and they would still make sense.
But FTP isn't even close. You could not find/replace "Object" with "FTP" without making those docs completely incoherent.
> But FTP isn't even close. You could not find/replace "Object" with "FTP" without making those docs completely incoherent.
That's the wrong comparison though. You could replace all instances of "S3" with "an FTP server" and it would make a ton of sense, minus the reliability claims.
Amazon Unlimited FTP Server is a simple key, value store designed to store as many FTP Servers as you want. You store these FTP Servers in one or more buckets. An FTP Server consists of the following:
You could use a mix of "FTP Server" and File:
Amazon Unlimited FTP Server is a simple key, value store designed to store as many files as you want. You store these files in one or more buckets. A file consists of the following:
Note that this is essentially redefining the word file to include S3-specific metadata.
Hah...I mean I think it's a bit arrogant for OP to try and rename all of a company's services. Sure some of them are confusing and could be named better but Amazon is a trailblazer here with lots of these services becoming available on a cloud.
"S3 - Simple Storage Service" describes pretty well what the point of the service is without making strong claims around what it may or may not be. It's a service for storing things; it's not a database or a filesystem. The devil is in the details of course but even when I was really new to cloud services I got the gist of what S3 was supposed to do.