Jump to content

New File Storage Type: S3 Compatible


Flitterkill

Recommended Posts

Plenty of alternative S3 compatible providers are available now at a price point far better than Amazon.

I took a gander this evening to see how far I could go to writing my own file storage method but ran into the expected walls such as having to add the file manually to the System/File directory (Apps and Plugins won't let me hit that stuff natively) so naturally anything I move forward on is going to be messy. I was hoping the included Amazon S3 method was more generic than it actually is but as you know it has more than a few hardcoded Amazon urls and so on.

Clearly it's doable and frankly, a generic S3 compatible method is going to be far less trouble than all the hoops you jump through for Amazon S3 specifically.

I still might just push forward on this but it is clearly something that is far better suited as an official IPS thing.

This would be a big win for IPS users...

PS: As an example, Delimiter is offering 100GB storage, 400GB outbound traffic, incoming free, no crappy put/get fees for $33/year on thier drop-in S3 compatible ObjSpace storage system. That's standard pricing which easily beats Amazon (and I'm not even going to mention thier clearly insane Amazon Photo Refugees deal...). Naturally doesn't fly with the hard coded url stuff you got floating around in the storage method.

Link to comment
Share on other sites

@Lindy you may wish to put this on the front burner - glad to report this is working pretty much out of the box.

Spent a few minutes on the tablet looking over the Amazon and parent File method before going to sleep last night and noticed you added in the endpoint stuff recently. After some poking this morning it's working with pretty much no work on my end.

All that is needed to add a new file storage option is to add another file in the System/File directory. I just duped Amazon.php and renamed it Delimiter internally. Stuck with just language variables instead of words but that's expected.

The thing is, you guys are just parsing out those files into the ACP, reading in the file configuration options as they are set in each file - which in this case is fantastic as you are then saving the file storage configurations as arrays in the already existing database table. That means not having to mess with creating settings or anything like that. Props to whoever made that happen.

delmethod.png

For Delimiter obj.space S3 storage; that's it.

Tested. Bucket writes working. Bucket reads working. Bucket deletes working. I've got an S3 bucket manager/viewer running alongside while testing so I could watch the writes/deletes. All good.

And of course, I don't have to dupe the method in System/Files at all - I can just add this in the Amazon storage method and roll with it.

All that is really needed on your end is to dupe the Amazon file storage method and rename the lang vars to be neutral, or just turn the Amazon S3 method into neutral wording. 

Not sure if there is anything else under the hood that needs work but if writes and deletes are good to go I can't see too much trouble...

Link to comment
Share on other sites

Got a few minutes this afternoon to test this some more. Changing storage methods after the fact (switching Gallery images from the Delimiter/Amazon S3 back to file system) worked flawlessly. I'm pretty sure this is production ready for alt-S3 providers.

Which is nice because 3 years worth of 2TB S3 storage for $99 is something I would very much like to use..

Link to comment
Share on other sites

You can just go ahead and use it if you are feeling it. I'm about to hook up one of my forums with this. If it uploads, reads, deletes, and handles changing storage methods I'm not sure what else there is that can break things... Where it says Amazon S3, just replace that word (in your mind) with Amazon S3 / S3 Compatible

Link to comment
Share on other sites

On 10/19/2016 at 6:06 PM, Flitterkill said:

For Delimiter obj.space S3 storage; that's it.

How about loading speeds? They have servers only in Atlanta?

I'm asking because I'm from Europe and I was wondering if the loading time is good for Europe users

Can you test the load time with Stockholm, Sweden server?  tools.pingdom.com

Link to comment
Share on other sites

@amator

https://ipstest.obj.space/testimage.jpg

Knock yourself out. I've found that pingdom tends to indicate slower performance thna what I actually experieince in the browser.

I would test with pingdom, and you'll probably see response times of over a 1 second (it is Atlanta, USA to Stockholm after all...), but be sure to just load that link up in your browser and see how it feels.

Link to comment
Share on other sites

44 minutes ago, Flitterkill said:

Sure, hang on..

2.8 sec in my browser

2.6 sec pingdom (Stockholm server)

1.8 sec pingdom (San Jose server)

I don't know how this compares with amazon s3

Found something. This is amazon s3 stored isn't it? A 4.4 Mb file that loads much faster, around 2 sec in my browser

57e3e11a659d0_1b(5).png.68b4d16eb4b3787e

 

 

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...