Действительно короткий ответ, так как у меня заканчивается.(Предоставлю больше информации позже).Этот ответ также использует альтернативный подход к тому, что вы пытаетесь сделать.
Если возможно, вы должны использовать систему, которая имеет выделенный ACL, поддерживающий все файлы, хранящиеся на нем.Например, если вы используете Amazon S3, вы можете предоставить свой собственный ACL для каждого объекта, который хранится в корзине, и вы также можете создавать ссылки на лету, которые действительны и подписаны всего за X минут.
Учитывая ваш сценарий, вы можете сохранить все файлы MP3, которые у вас есть, на чем-то вроде Amazon S3 (есть и другие, так что вам не нужно использовать S3), а затемПользователь совершает покупку и транзакция подтверждается, вы можете использовать S3 API для генерации ссылки на изображение.
Это будет что-то вроде:
get_object_url( 'my-mp3s.com', 'albums/Foo/bar.mpg')
Затем вы получите URL-адрес, который вы можете предоставить клиенту.Кроме того, вы можете попросить Amazon создать URL-адрес, срок действия которого истек в течение 15 минут.